summaryrefslogtreecommitdiff
path: root/tools/render-test/cuda/cuda-compute-util.h
diff options
context:
space:
mode:
authorTim Foley <tfoleyNV@users.noreply.github.com>2021-03-17 12:55:30 -0700
committerGitHub <noreply@github.com>2021-03-17 12:55:30 -0700
commit6e5d85efb9fa5f647f7f0c7ef784a9fd09b29023 (patch)
tree6206ef11502a1a5d9c1dc00df359be9aececffdf /tools/render-test/cuda/cuda-compute-util.h
parentb64a23cccfe9876d53cda773afc796bd975fa7e5 (diff)
Remove old code paths from render-test (#1760)
* Remove old code paths from render-test Historically, the `render-test` tool was using three different code paths: * One based on `gfx` and manual (non-reflection-based) parameter setting, used for OpenGL, D3D11, D3D12, and Vulkan * One for CPU that used reflection-based parameter setting but shared no code with the first * One for CUDA that used reflection-based parameter setting and shared some, but not all, code with the CPU path Recently we've updated `render-test` to include a fourth option: * Using `gfx` and the "shader object" system it exposes for a unified reflection-based parameter-setting system taht works across OpenGL, D3D11, D3D12, Vulkan, CUDA, and CPU This change removes the first three options and leaves only the single unified path. A sa result, a bunch of code in `render-test` is no longer needed, and the codebase no longer relies on things like the `IDescriptorSet`-related APIs in `gfx`. Several existing tests had to be disabled to make this change possible. Those tests will need to be audited and either re-enabled once we fix issues in the shader object system, or permanently removed if they don't test stuff we intend to support in the long run (e.g., global-scope type parameters, which aren't a clear necessity). * fixup: CUDA detection logic
Diffstat (limited to 'tools/render-test/cuda/cuda-compute-util.h')
-rw-r--r--tools/render-test/cuda/cuda-compute-util.h69
1 files changed, 0 insertions, 69 deletions
diff --git a/tools/render-test/cuda/cuda-compute-util.h b/tools/render-test/cuda/cuda-compute-util.h
deleted file mode 100644
index 9c6c8b9b4..000000000
--- a/tools/render-test/cuda/cuda-compute-util.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef CUDA_COMPUTE_UTIL_H
-#define CUDA_COMPUTE_UTIL_H
-
-#include "../slang-support.h"
-#include "../options.h"
-
-#include "source/core/slang-smart-pointer.h"
-
-namespace renderer_test {
-
-// Base class for CUDA resources. This includes textures but also
-// memory allocations
-class CUDAResource : public Slang::RefObject
-{
-public:
- virtual uint64_t getBindlessHandle() = 0;
-};
-
-struct CUDAComputeUtil
-{
- // Define here, so we don't need to include the CUDA header
- typedef size_t CUdeviceptr;
-
- /// NOTE! MUST match up to definitions in the CUDA prelude
- struct ByteAddressBuffer
- {
- CUdeviceptr data;
- size_t sizeInBytes;
- };
- struct StructuredBuffer
- {
- CUdeviceptr data;
- size_t count;
- };
- struct Array
- {
- CUdeviceptr data;
- size_t count;
- };
-
- struct Context
- {
- /// Holds the binding information
- BindSet m_bindSet;
- CPULikeBindRoot m_bindRoot;
- /// Buffers are held in same order as entries in layout (useful for dumping out bindings)
- Slang::List<BindSet::Value*> m_buffers;
- Slang::OrderedDictionary<Slang::String, Slang::RefPtr<CUDAResource>> m_bindlessResources;
- void releaseBindlessResources();
- };
-
- static SlangResult parseFeature(const Slang::UnownedStringSlice& feature, bool& outResult);
-
- static bool hasFeature(const Slang::UnownedStringSlice& feature);
-
- static SlangResult createTextureResource(
- const ShaderInputLayoutEntry& srcEntry,
- slang::TypeLayoutReflection* typeLayout,
- Slang::RefPtr<CUDAResource>& outResource);
-
- static SlangResult execute(const ShaderCompilerUtil::OutputAndLayout& outputAndLayout, const uint32_t dispatchSize[3], Context& outContext);
-
- static bool canCreateDevice();
-};
-
-
-} // renderer_test
-
-#endif //CPU_MEMORY_BINDING_H