From 662721ba4ab0e38924701df4c876a86eb8390968 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Wed, 15 Jan 2020 14:58:45 -0500 Subject: Bind Location (#1166) * First pass at BindLocation. * Added BindSet::init - for initializing with two input constant buffers. Needs better name, and perhaps should be another class. * Fix handling of constant buffer stripping. Improved initialization. * Trying to generalize BindLocation a little more. Split out CPULikeBindRoot. * More work to make BindLocation et al work with non uniform bindings. * Added parsing to a location. * WIP: Trying to get CPU working with BindLocation. * Describe problem of knowing the type of the reference point in the binding table. * More ideas on getBindings fix. * Remove BindSet as member of BindLocation. * Added BindLocation::Invalid * Made BindLocation able to be key in hash * Use BindLocation for bindings on BindingSet. * Added cuda and nvrtc categories to test infrastructure. Disabled CUDA synthetic tests by default. Fixed such that all tests now produce something in BindLocation style. * Use m_userIndex instead of m_userData on Resource. Move the binding setup out of cpu-compute-util (as no longer CPU specific) * Removed CPUBinding - used BindLocation/BindSet instead. Fixed some bugs around indexOf around uniform indirection. * Renamed BindSet::Resource -> BindSet::Value. * Document BindLocation. * Fixes for Clang/GCC Improve invariant requirement handling when constructing from BindPoints. --- tools/render-test/shader-input-layout.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'tools/render-test/shader-input-layout.h') diff --git a/tools/render-test/shader-input-layout.h b/tools/render-test/shader-input-layout.h index d2f67a61e..3e33f876e 100644 --- a/tools/render-test/shader-input-layout.h +++ b/tools/render-test/shader-input-layout.h @@ -4,6 +4,10 @@ #include "core/slang-basic.h" #include "core/slang-random-generator.h" +#include "core/slang-writer.h" + +#include "bind-location.h" + #include "render.h" namespace renderer_test { @@ -92,6 +96,12 @@ public: void updateForTarget(SlangCompileTarget target); void parse(Slang::RandomGenerator* rand, const char* source); + + /// Adds to bind set resources as defined in entries. + /// Note: No actual resources are created on a device, these are just the 'Resource' structures that are held on the BindSet + /// For buffers, the Resources will be setup with the contents of the entry. + /// That if a resource is created that maps to an entry, the m_userData member of Resource will be set to it's index + static SlangResult addBindSetValues(const Slang::List& entries, const Slang::String& sourcePath, Slang::WriterHelper outError, BindRoot& bindRoot); }; void generateTextureDataRGB8(TextureData& output, const InputTextureDesc& desc); -- cgit v1.2.3