diff options
| author | Tim Foley <tfoleyNV@users.noreply.github.com> | 2021-03-17 12:55:30 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-17 12:55:30 -0700 |
| commit | 6e5d85efb9fa5f647f7f0c7ef784a9fd09b29023 (patch) | |
| tree | 6206ef11502a1a5d9c1dc00df359be9aececffdf /tools/render-test/cuda/cuda-compute-util.h | |
| parent | b64a23cccfe9876d53cda773afc796bd975fa7e5 (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.h | 69 |
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 |
