diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2021-06-08 08:48:47 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-08 08:48:47 -0400 |
| commit | fb50fab76a723f46026474ea5bb0226c297d1fd5 (patch) | |
| tree | f489f30ccb94a130c942d907b9f009e7cc6aabd4 /tests | |
| parent | 5974f3e543b56cd11f28093c5a9d7410b2b3f979 (diff) | |
Fix RWTexture issues on CUDA (#1876)
* #include an absolute path didn't work - because paths were taken to always be relative.
* Re-enable CUDA RWTexture tests.
Re-enable RWTexture1D test
Make sure tests have only single mip for RWTexture (required for CUDA)
* Fix issue with reading CUDA surface.
Re-enable working CUDA RWTextureTest.
Enable 1D case.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/compute/half-rw-texture-convert.slang | 12 | ||||
| -rw-r--r-- | tests/compute/half-rw-texture-simple.slang | 5 | ||||
| -rw-r--r-- | tests/compute/half-rw-texture-simple.slang.expected.txt | 2 | ||||
| -rw-r--r-- | tests/compute/rw-texture-simple.slang | 16 | ||||
| -rw-r--r-- | tests/compute/rw-texture-simple.slang.expected.txt | 6 |
5 files changed, 17 insertions, 24 deletions
diff --git a/tests/compute/half-rw-texture-convert.slang b/tests/compute/half-rw-texture-convert.slang index 161033637..d28ccd7b0 100644 --- a/tests/compute/half-rw-texture-convert.slang +++ b/tests/compute/half-rw-texture-convert.slang @@ -11,15 +11,9 @@ //DIABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type -shaderobj // Note that this test is a little silly. The output does not confirm that the write actually worked. -// This is because it's not trivial on CUDA to do so. If there is a write conversion, the RWTexture -// is backed by a surface. There is a texture converting write (in sust.p) but not in reading. -// -// In practice if if you wanted a texture read, you'd either only be able to read *without* format -// conversion, or via a separate binding of the same surface as a Texture. -// There's no simple way to describe either, so this test just confirms it outputs PTX that can -// be executed, and unfortunately doesn't test if the write conversion actually *worked* - -//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -output-using-type -shaderobj -render-features half +// half-rw-texture-convert2.slang tests this + +//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -output-using-type -shaderobj -render-features half //TEST_INPUT: RWTexture2D(format=R_Float16, size=4, content = one, mipMaps = 1):name rwt2D [format("r16f")] diff --git a/tests/compute/half-rw-texture-simple.slang b/tests/compute/half-rw-texture-simple.slang index e5b5ec08e..0438c6964 100644 --- a/tests/compute/half-rw-texture-simple.slang +++ b/tests/compute/half-rw-texture-simple.slang @@ -10,6 +10,9 @@ //DIABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type -shaderobj //TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -output-using-type -shaderobj -render-features half +//TEST_INPUT: RWTexture1D(format=R_Float16, size=4, content = one, mipMaps = 1):name rwt1D +RWTexture1D<half> rwt1D; + //TEST_INPUT: RWTexture2D(format=R_Float16, size=4, content = one, mipMaps = 1):name rwt2D RWTexture2D<half> rwt2D; @@ -26,7 +29,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) float val = 0.0f; - //val += rwt1D[idx]; + val += rwt1D[idx]; half h0 = rwt2D[uint2(idx, idx)]; diff --git a/tests/compute/half-rw-texture-simple.slang.expected.txt b/tests/compute/half-rw-texture-simple.slang.expected.txt index c0e0cfb4b..164570278 100644 --- a/tests/compute/half-rw-texture-simple.slang.expected.txt +++ b/tests/compute/half-rw-texture-simple.slang.expected.txt @@ -1,5 +1,5 @@ type: float -5.000000 6.000000 7.000000 8.000000 +9.000000 diff --git a/tests/compute/rw-texture-simple.slang b/tests/compute/rw-texture-simple.slang index a5a103200..2752afe3a 100644 --- a/tests/compute/rw-texture-simple.slang +++ b/tests/compute/rw-texture-simple.slang @@ -6,14 +6,14 @@ //TEST(compute):COMPARE_COMPUTE_EX:-slang -compute -dx12 -profile cs_6_0 -use-dxil -output-using-type -shaderobj // TODO(JS): Doesn't work on vk currently, because createTextureView not implemented on vk renderer //DISABLE_TEST(compute, vulkan):COMPARE_COMPUTE_EX:-vk -compute -output-using-type -shaderobj -// TODO(JS): Doesn't work on certain CI systems. -//DISABLE_TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -output-using-type -shaderobj -//TEST_INPUT: RWTexture1D(format=R_Float32, size=4, content = one):name rwt1D +//TEST(compute):COMPARE_COMPUTE_EX:-cuda -compute -output-using-type -shaderobj + +//TEST_INPUT: RWTexture1D(format=R_Float32, size=4, content = one, mipMaps = 1):name rwt1D RWTexture1D<float> rwt1D; -//TEST_INPUT: RWTexture2D(format=R_Float32, size=4, content = one):name rwt2D +//TEST_INPUT: RWTexture2D(format=R_Float32, size=4, content = one, mipMaps = 1):name rwt2D RWTexture2D<float> rwt2D; -//TEST_INPUT: RWTexture3D(format=R_Float32, size=4, content = one):name rwt3D +//TEST_INPUT: RWTexture3D(format=R_Float32, size=4, content = one, mipMaps = 1):name rwt3D RWTexture3D<float> rwt3D; //TEST_INPUT: ubuffer(data=[0 0 0 0], stride=4):out,name outputBuffer @@ -26,15 +26,11 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) float val = 0.0f; - //val += rwt1D.Load(idx); val += rwt1D[idx]; val += rwt2D[uint2(idx, idx)]; val += rwt3D[uint3(idx, idx, idx)]; - // NOTE! This is disabled because on CUDA, whilst this has an effect it is not what is expected. - // The value read back has changed but seems to always be 1. - // rwt1D[idx] = idx; - + rwt1D[idx] = idx; rwt2D[uint2(idx, idx)] = idx; rwt3D[uint3(idx, idx, idx)] = idx; diff --git a/tests/compute/rw-texture-simple.slang.expected.txt b/tests/compute/rw-texture-simple.slang.expected.txt index 78ed77898..1d9023742 100644 --- a/tests/compute/rw-texture-simple.slang.expected.txt +++ b/tests/compute/rw-texture-simple.slang.expected.txt @@ -1,5 +1,5 @@ type: float -4.000000 +3.000000 6.000000 -8.000000 -10.000000 +9.000000 +12.000000 |
