From 2c097545eaa324a91a035327abad2e8b4fa60469 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Fri, 14 Feb 2020 15:06:35 -0500 Subject: Feature/cuda coverage (#1223) * Add cubemap support. * Add CUDA fence instrinsics. * Added Gather for CUDA. * Use the CUDA driver API as much as possible. * * Support 1D texture on CPU * WIP on 1D texture on CUDA * Added simplified texture test * Fix test. * Improve texture-simple tests. Co-authored-by: Tim Foley --- prelude/slang-cpp-types.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'prelude') diff --git a/prelude/slang-cpp-types.h b/prelude/slang-cpp-types.h index 67db607f6..2238727c5 100644 --- a/prelude/slang-cpp-types.h +++ b/prelude/slang-cpp-types.h @@ -228,6 +228,23 @@ struct SamplerComparisonState // Texture +struct ITexture1D +{ + virtual void Load(const int2& v, void* out) = 0; + virtual void Sample(SamplerState samplerState, float loc, void* out) = 0; + virtual void SampleLevel(SamplerState samplerState, float loc, float level, void* out) = 0; +}; + +template +struct Texture1D +{ + T Load(const int2& v) const { T out; texture->Load(v, &out); return out; } + T Sample(SamplerState samplerState, float v) const { T out; texture->Sample(samplerState, v, &out); return out; } + T SampleLevel(SamplerState samplerState, float v, float level) { T out; texture->SampleLevel(samplerState, v, level, &out); return out; } + + ITexture1D* texture; +}; + struct ITexture2D { virtual void Load(const int3& v, void* out) = 0; -- cgit v1.2.3