Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
ComputeShaderVK.h
Go to the documentation of this file.
1// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
2// SPDX-FileCopyrightText: 2025 Jorrit Rouwe
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
8
9#ifdef JPH_USE_VK
10
13
15
16class ComputeSystemVK;
17
19class JPH_EXPORT ComputeShaderVK : public ComputeShader
20{
21public:
23
25 ComputeShaderVK(ComputeSystemVK *inComputeSystem, uint32 inGroupSizeX, uint32 inGroupSizeY, uint32 inGroupSizeZ) : ComputeShader(inGroupSizeX, inGroupSizeY, inGroupSizeZ), mComputeSystem(inComputeSystem) { }
26 virtual ~ComputeShaderVK() override;
27
29 bool Initialize(const Array<uint8> &inSPVCode, VkBuffer inDummyBuffer, ComputeShaderResult &outResult);
30
32 uint32 NameToBufferInfoIndex(const char *inName) const;
33
35 VkPipeline GetPipeline() const { return mPipeline; }
36 VkPipelineLayout GetPipelineLayout() const { return mPipelineLayout; }
37 VkDescriptorSetLayout GetDescriptorSetLayout() const { return mDescriptorSetLayout; }
38 const Array<VkDescriptorSetLayoutBinding> &GetLayoutBindings() const { return mLayoutBindings; }
39 const Array<VkDescriptorBufferInfo> &GetBufferInfos() const { return mBufferInfos; }
40
41private:
42 ComputeSystemVK * mComputeSystem;
43 VkShaderModule mShaderModule = VK_NULL_HANDLE;
44 VkPipelineLayout mPipelineLayout = VK_NULL_HANDLE;
45 VkPipeline mPipeline = VK_NULL_HANDLE;
46 VkDescriptorSetLayout mDescriptorSetLayout = VK_NULL_HANDLE;
47 Array<String> mBindingNames;
48 UnorderedMap<string_view, uint32> mNameToBufferInfoIndex;
51};
52
54
55#endif // JPH_USE_VK
#define JPH_EXPORT
Definition Core.h:278
#define JPH_NAMESPACE_END
Definition Core.h:428
std::uint32_t uint32
Definition Core.h:508
#define JPH_NAMESPACE_BEGIN
Definition Core.h:422
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition Memory.h:50
Definition Array.h:36
Compute shader handle.
Definition ComputeShader.h:15
Helper class that either contains a valid result or an error.
Definition Result.h:12
Definition UnorderedMap.h:31