diff options
Diffstat (limited to 'tests/compute')
| -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 |
