From adaea0e993fd8db351b5dad92802e47ed6d0ec77 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 17 Aug 2022 23:08:34 -0700 Subject: Warning on lossy implicit casts. (#2367) * Warning on bool to float conversion. * Fix test cases. * Improve. * LanguageServer: don't show constant value for non constant variables. * Fix tests. * Fix warnings in tests. Co-authored-by: Yong He --- tests/bugs/bool-init.slang | 2 +- tests/bugs/bool-op.slang | 16 +++++++-------- tests/bugs/generic-constant-fold.slang | 4 ++-- tests/bugs/generic-default-matrix.slang | 4 ++-- tests/bugs/generic-default-value.slang | 4 ++-- tests/bugs/generic-uint-value-param.slang | 24 ++++++++++++++++++++++ .../generic-uint-value-param.slang.expected.txt | 5 +++++ tests/bugs/gh-1990.slang | 2 +- tests/bugs/gh-487.slang | 2 +- tests/bugs/gh-841.slang | 2 +- tests/bugs/gh-841.slang.glsl | 2 +- tests/bugs/gl-33.slang | 2 +- tests/bugs/meta-2.slang | 2 +- tests/bugs/mutating/mutating-generic-method.slang | 2 +- tests/bugs/nested-existential-dyndispatch.slang | 2 +- tests/bugs/operator-overload.slang | 2 +- tests/bugs/ssa-loop.slang | 4 ++-- tests/bugs/static-method.slang | 2 +- tests/bugs/texture2d-ms.hlsl | 2 +- tests/bugs/vec-compare.slang | 2 +- tests/bugs/vk-structured-buffer-load.hlsl | 4 ++-- tests/compute/array-existential-parameter.slang | 2 +- tests/compute/array-param.slang | 4 ++-- tests/compute/assoctype-lookup.slang | 4 ++-- tests/compute/assoctype-nested.slang | 4 ++-- tests/compute/bound-check-zero-index.slang | 2 +- tests/compute/buffer-layout.slang | 4 ++-- tests/compute/buffer-type-splitting.slang | 8 ++++---- tests/compute/byte-address-buffer.slang | 6 +++--- tests/compute/cast-zero-to-struct.slang | 2 +- tests/compute/constexpr.slang | 2 +- tests/compute/dynamic-dispatch-13.slang | 2 +- tests/compute/dynamic-dispatch-14.slang | 2 +- .../dynamic-dispatch-bindless-texture.slang | 4 ++-- tests/compute/entry-point-uniform-params.slang | 2 +- tests/compute/enum.slang | 6 +++--- tests/compute/frem.slang | 4 ++-- tests/compute/half-calc.slang | 4 ++-- tests/compute/half-rw-texture-convert.slang | 2 +- tests/compute/half-rw-texture-convert2.slang | 2 +- tests/compute/half-structured-buffer.slang | 2 +- tests/compute/half-vector-calc.slang | 10 ++++----- tests/compute/interface-local.slang | 2 +- tests/compute/interface-param.slang | 4 ++-- .../compute/interface-shader-param-in-struct.slang | 2 +- tests/compute/interface-shader-param.slang | 2 +- tests/compute/interface-static-method.slang | 2 +- .../compute/matrix-layout-structured-buffer.slang | 4 ++-- tests/compute/matrix-layout.hlsl | 4 ++-- tests/compute/modern-syntax.slang | 4 ++-- tests/compute/multiple-continue-sites.slang | 2 +- tests/compute/mutating-and-inout.slang | 2 +- tests/compute/mutating-methods.slang | 2 +- tests/compute/pack-any-value-16bit.slang | 4 ++-- tests/compute/rw-texture-simple.slang | 2 +- tests/compute/scope-operator.slang | 2 +- tests/compute/semantic.slang | 2 +- tests/compute/static-const-array.slang | 2 +- tests/compute/static-const-matrix-array.slang | 2 +- tests/compute/static-const-vector-array.slang | 2 +- tests/compute/struct-make.slang | 4 ++-- tests/compute/structured-buffer-of-matrices.slang | 2 +- tests/compute/texture-get-dimensions.slang | 2 +- tests/compute/texture-simple.slang | 2 +- .../compute/unbounded-array-of-array-syntax.slang | 2 +- tests/compute/vector-scalar-compare.slang | 4 ++-- tests/cross-compile/array-of-buffers.slang | 2 +- tests/cross-compile/get-dimensions.slang | 6 +++--- tests/cross-compile/image-load.slang | 2 +- tests/cross-compile/simple-cross-compile.slang | 2 +- tests/diagnostics/attribute-error.slang.expected | 3 +++ tests/diagnostics/bool-to-float.slang | 13 ++++++++++++ tests/diagnostics/bool-to-float.slang.expected | 8 ++++++++ tests/diagnostics/constexpr-error.slang | 6 +++--- tests/diagnostics/constexpr-error.slang.expected | 11 ++++++---- .../enum-implicit-conversion.slang.expected | 9 ++++++++ ...eric-invalid-type-specialization.slang.expected | 3 +++ tests/diagnostics/local-line.slang | 10 ++++----- tests/doc/doc.slang | 10 ++++----- tests/downstream/dxc-x-arg.slang | 2 +- tests/experimental/liveness/liveness-2.slang | 2 +- tests/experimental/liveness/liveness-3.slang | 4 ++-- .../liveness/liveness-3.slang.expected | 2 +- tests/experimental/liveness/liveness-4.slang | 2 +- tests/experimental/liveness/liveness-5.slang | 2 +- tests/experimental/liveness/liveness-6.slang | 2 +- tests/experimental/liveness/liveness-7.slang | 4 ++-- .../liveness/liveness-7.slang.expected | 2 +- tests/experimental/liveness/liveness.slang | 6 +++--- .../experimental/liveness/liveness.slang.expected | 2 +- tests/hlsl-intrinsic/active-mask/switch.slang | 4 ++-- .../hlsl-intrinsic/bit-cast/bit-cast-16-bit.slang | 10 ++++----- .../byte-address-16bit-vector.slang | 2 +- .../byte-address-buffer/byte-address-16bit.slang | 2 +- .../byte-address-buffer/byte-address-struct.slang | 2 +- tests/hlsl-intrinsic/literal-int64.slang | 2 +- tests/hlsl-intrinsic/scalar-int64.slang | 2 +- tests/hlsl-intrinsic/scalar-uint.slang | 2 +- tests/hlsl-intrinsic/scalar-uint64.slang | 2 +- tests/hlsl-intrinsic/wave-active-count-bits.slang | 2 +- tests/hlsl-intrinsic/wave-get-lane-index.slang | 8 ++++---- .../hlsl-intrinsic/wave-mask/wave-get-active.slang | 4 ++-- .../wave-mask/wave-get-converged.slang | 4 ++-- tests/hlsl-intrinsic/wave-mask/wave-matrix.slang | 2 +- tests/hlsl-intrinsic/wave-mask/wave-vector.slang | 6 +++--- tests/hlsl-intrinsic/wave-mask/wave.slang | 2 +- tests/hlsl-intrinsic/wave-matrix.slang | 2 +- tests/hlsl-intrinsic/wave-prefix-count-bits.slang | 2 +- tests/hlsl-intrinsic/wave-vector.slang | 6 +++--- tests/hlsl/simple/rw-texture.hlsl | 6 +++--- tests/ir/scalar-truncate.slang | 2 +- .../bit-cast/struct-bit-cast.slang | 6 +++--- .../constants/static-const-in-struct.slang | 4 ++-- tests/language-feature/enums/enum-equality.slang | 4 ++-- tests/language-feature/enums/nested-enum.slang | 4 ++-- .../extensions/interface-extension.slang | 4 ++-- .../generics/struct-generic-value-param.slang | 4 ++-- .../inheritance/derived-struct-init-list.slang | 4 ++-- .../struct-inherit-interface-requirement.slang | 4 ++-- .../inheritance/struct-inheritance-import.slang | 2 +- .../inheritance/struct-inheritance.slang | 4 ++-- .../default-init-16bit-types.slang | 4 ++-- .../interfaces/interface-conjunction.slang | 4 ++-- .../namespaces/multiple-namespace.slang | 4 ++-- .../namespaces/simple-namespace.slang | 4 ++-- .../namespaces/using-namespace.slang | 4 ++-- .../properties/property-decl.slang | 4 ++-- .../shader-params/entry-point-uniform-params.slang | 4 ++-- .../interface-shader-param-ordinary.slang | 2 +- .../swizzles/matrix-swizzles.slang | 6 +++--- .../opaque/inout-param-opaque-type-in-struct.slang | 4 ++-- .../types/opaque/inout-param-opaque-type.slang | 4 ++-- .../opaque/out-param-opaque-type-in-struct.slang | 4 ++-- .../types/opaque/out-param-opaque-type.slang | 4 ++-- .../opaque/return-opaque-type-in-struct.slang | 4 ++-- .../types/opaque/return-opaque-type.slang | 4 ++-- .../nv-extensions/nv-ray-tracing-motion-blur.slang | 4 ++-- .../func-resource-result-complex.slang | 4 ++-- .../func-resource-result-simple.slang | 4 ++-- tests/pipeline/compute/compute-system-values.slang | 8 ++++---- .../rasterization/fragment-shader-interlock.slang | 4 ++-- tests/pipeline/ray-tracing/trace-ray-inline.slang | 4 ++-- tests/reflection/unbounded-arrays.hlsl | 2 +- .../atomic-float-byte-address-buffer-cross.slang | 4 ++-- .../atomic-float-byte-address-buffer.slang | 4 ++-- .../atomic-int64-byte-address-buffer.slang | 4 ++-- .../atomic-min-max-u64-byte-address-buffer.slang | 6 +++--- .../cas-int64-byte-address-buffer.slang | 4 ++-- .../exchange-int64-byte-address-buffer.slang | 2 +- .../type/texture-sampler/texture-sampler-2d.slang | 2 +- tests/vkray/anyhit.slang | 2 +- tests/vkray/anyhit.slang.glsl | 2 +- 152 files changed, 324 insertions(+), 256 deletions(-) create mode 100644 tests/bugs/generic-uint-value-param.slang create mode 100644 tests/bugs/generic-uint-value-param.slang.expected.txt create mode 100644 tests/diagnostics/bool-to-float.slang create mode 100644 tests/diagnostics/bool-to-float.slang.expected (limited to 'tests') diff --git a/tests/bugs/bool-init.slang b/tests/bugs/bool-init.slang index 51fa852f9..b073a52cc 100644 --- a/tests/bugs/bool-init.slang +++ b/tests/bugs/bool-init.slang @@ -16,7 +16,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) Thing thing = {}; int index = int(dispatchThreadID.x); - if (index % 3) + if (index % 3 != 0) { thing.a = (index & 1) != 0; } diff --git a/tests/bugs/bool-op.slang b/tests/bugs/bool-op.slang index 4d4b43221..911e23aa0 100644 --- a/tests/bugs/bool-op.slang +++ b/tests/bugs/bool-op.slang @@ -15,7 +15,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) uint uv = tid; int iv = int(tid); - bool2 bv2 = { tid & 1, tid > 10 }; + bool2 bv2 = { (tid & 1) != 0, tid > 10 }; float2 f2 = { float(tid), float(tid + 1) }; @@ -32,20 +32,20 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) r |= 0x0002; } - if (iv) + if (iv != 0) { r|= 0x0004; } - if (!iv) + if (!bool(iv)) { r|= 0x0008; - } - - if (uv) + } + + if (uv != 0) { r |= 0x0010; } - if (!uv) + if (!bool(uv)) { r |= 0x0020; } @@ -59,7 +59,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) r |= 0x0080; } - if (any(!f2)) + if (any(!bool2(f2))) { r |= 0x0100; } diff --git a/tests/bugs/generic-constant-fold.slang b/tests/bugs/generic-constant-fold.slang index 35aa2a042..b3de9cb07 100644 --- a/tests/bugs/generic-constant-fold.slang +++ b/tests/bugs/generic-constant-fold.slang @@ -29,8 +29,8 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { SomeStruct a; SomeStruct b; - SomeStruct<1> c; - SomeStruct<0> d; + SomeStruct c; + SomeStruct d; AnotherStruct e; AnotherStruct f; diff --git a/tests/bugs/generic-default-matrix.slang b/tests/bugs/generic-default-matrix.slang index 47fbe520e..a559f59b1 100644 --- a/tests/bugs/generic-default-matrix.slang +++ b/tests/bugs/generic-default-matrix.slang @@ -11,10 +11,10 @@ struct Another [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int index = dispatchThreadID.x; + int index = int(dispatchThreadID.x); Another<2, 4> a = {}; - outputBuffer[index] = index + a.values[0].x; + outputBuffer[index] = index + int(a.values[0].x); } diff --git a/tests/bugs/generic-default-value.slang b/tests/bugs/generic-default-value.slang index b3805e317..32dc07cdc 100644 --- a/tests/bugs/generic-default-value.slang +++ b/tests/bugs/generic-default-value.slang @@ -14,10 +14,10 @@ struct Check [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int index = dispatchThreadID.x; + int index = int(dispatchThreadID.x); Check v = {}; - outputBuffer[index] = index + v.v; + outputBuffer[index] = index + int(v.v); } diff --git a/tests/bugs/generic-uint-value-param.slang b/tests/bugs/generic-uint-value-param.slang new file mode 100644 index 000000000..4d4059732 --- /dev/null +++ b/tests/bugs/generic-uint-value-param.slang @@ -0,0 +1,24 @@ +// generic-uint-value-param.slang + +//DIAGNOSTIC_TEST:SIMPLE: + +// Regression test to confirm that type checker +// doesn't report warnings for these constant coercions. + +struct BoolG +{ } + +struct Test +{ + int arr[v]; +} + +static const uint uv = 5; + +void t() +{ + BoolG gt; + BoolG gt2; + BoolG<1 != 2> gt3; + Test v; +} \ No newline at end of file diff --git a/tests/bugs/generic-uint-value-param.slang.expected.txt b/tests/bugs/generic-uint-value-param.slang.expected.txt new file mode 100644 index 000000000..4c32e2510 --- /dev/null +++ b/tests/bugs/generic-uint-value-param.slang.expected.txt @@ -0,0 +1,5 @@ +result code = 0 +standard error = { +} +standard output = { +} diff --git a/tests/bugs/gh-1990.slang b/tests/bugs/gh-1990.slang index 758caf1a9..4baceee1f 100644 --- a/tests/bugs/gh-1990.slang +++ b/tests/bugs/gh-1990.slang @@ -59,5 +59,5 @@ void test(R r, int id) void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { Impl impl; - test(impl, dispatchThreadID.x); + test(impl, int(dispatchThreadID.x)); } diff --git a/tests/bugs/gh-487.slang b/tests/bugs/gh-487.slang index e425dabe2..f59a1ef7b 100644 --- a/tests/bugs/gh-487.slang +++ b/tests/bugs/gh-487.slang @@ -23,7 +23,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { uint tid = dispatchThreadID.x; - int inVal = tid; + int inVal = int(tid); int outVal = test(inVal); gBuffer[tid] = outVal; diff --git a/tests/bugs/gh-841.slang b/tests/bugs/gh-841.slang index becf741c1..44d8348e5 100644 --- a/tests/bugs/gh-841.slang +++ b/tests/bugs/gh-841.slang @@ -13,7 +13,7 @@ struct RasterVertex float4 main(RasterVertex v) : SV_Target { float4 result = v.c; - if(v.u & 1) + if((v.u & 1) != 0) result += 1.0; return result; } diff --git a/tests/bugs/gh-841.slang.glsl b/tests/bugs/gh-841.slang.glsl index da23c33f1..dd949521b 100644 --- a/tests/bugs/gh-841.slang.glsl +++ b/tests/bugs/gh-841.slang.glsl @@ -22,7 +22,7 @@ void main() vec4 result_0 = _S4.c_0; vec4 result_1; - if(bool(_S4.u_0 & uint(1))) + if((_S4.u_0 & uint(1))!=0) { result_1 = result_0 + 1.0; } diff --git a/tests/bugs/gl-33.slang b/tests/bugs/gl-33.slang index 3050115e5..255d47636 100644 --- a/tests/bugs/gl-33.slang +++ b/tests/bugs/gl-33.slang @@ -21,7 +21,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { uint tid = dispatchThreadID.x; - int val = tid; + int val = int(tid); val = test(val); gBuffer[tid] = val; diff --git a/tests/bugs/meta-2.slang b/tests/bugs/meta-2.slang index 6dd5541c4..d6b800e4c 100644 --- a/tests/bugs/meta-2.slang +++ b/tests/bugs/meta-2.slang @@ -11,7 +11,7 @@ struct GetValue [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int index = dispatchThreadID.x; + int index = int(dispatchThreadID.x); outputBuffer[index] = GetValue<10>::Value; } diff --git a/tests/bugs/mutating/mutating-generic-method.slang b/tests/bugs/mutating/mutating-generic-method.slang index 625e70101..58fe6f344 100644 --- a/tests/bugs/mutating/mutating-generic-method.slang +++ b/tests/bugs/mutating/mutating-generic-method.slang @@ -42,7 +42,7 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int tid = dispatchThreadID.x; int val = test(tid); diff --git a/tests/bugs/nested-existential-dyndispatch.slang b/tests/bugs/nested-existential-dyndispatch.slang index b6689b54d..69eac42c9 100644 --- a/tests/bugs/nested-existential-dyndispatch.slang +++ b/tests/bugs/nested-existential-dyndispatch.slang @@ -40,7 +40,7 @@ struct AnyVal } [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID: SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID: SV_DispatchThreadID) { int index = dispatchThreadID.x; diff --git a/tests/bugs/operator-overload.slang b/tests/bugs/operator-overload.slang index b70b9b987..cc0306dd3 100644 --- a/tests/bugs/operator-overload.slang +++ b/tests/bugs/operator-overload.slang @@ -16,7 +16,7 @@ Vec2d operator+(Vec2d a, Vec2d b) } [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int index = dispatchThreadID.x; diff --git a/tests/bugs/ssa-loop.slang b/tests/bugs/ssa-loop.slang index 4f15f8bed..21cf6e7f5 100644 --- a/tests/bugs/ssa-loop.slang +++ b/tests/bugs/ssa-loop.slang @@ -22,9 +22,9 @@ int test(int val) RWStructuredBuffer gOutputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inputVal = tid; int outputVal = test(inputVal); gOutputBuffer[tid] = outputVal; diff --git a/tests/bugs/static-method.slang b/tests/bugs/static-method.slang index 4f2d363f2..98e4a3273 100644 --- a/tests/bugs/static-method.slang +++ b/tests/bugs/static-method.slang @@ -25,7 +25,7 @@ int test(int t) } [numthreads(4)] -void computeMain(uint3 tid : SV_DispatchThreadID) +void computeMain(int3 tid : SV_DispatchThreadID) { int val = tid.x; val = test(val); diff --git a/tests/bugs/texture2d-ms.hlsl b/tests/bugs/texture2d-ms.hlsl index 8a898b299..1d8293937 100644 --- a/tests/bugs/texture2d-ms.hlsl +++ b/tests/bugs/texture2d-ms.hlsl @@ -6,5 +6,5 @@ Texture2DMS tex : register(t1); [numthreads(4, 4, 1)] void main(uint3 groupId : SV_GroupID) { - tex.Load(groupId.xy, 0); + tex.Load(int2(groupId.xy), 0); } diff --git a/tests/bugs/vec-compare.slang b/tests/bugs/vec-compare.slang index 184e57a49..59ef06d02 100644 --- a/tests/bugs/vec-compare.slang +++ b/tests/bugs/vec-compare.slang @@ -6,7 +6,7 @@ RWStructuredBuffer outputBuffer; [numthreads(4,4,1)] -void computeMain(uint2 pixelIndex : SV_DispatchThreadID) +void computeMain(int2 pixelIndex : SV_DispatchThreadID) { // We will test floats, uints, and int vectors diff --git a/tests/bugs/vk-structured-buffer-load.hlsl b/tests/bugs/vk-structured-buffer-load.hlsl index ce862c0c8..d9e54d925 100644 --- a/tests/bugs/vk-structured-buffer-load.hlsl +++ b/tests/bugs/vk-structured-buffer-load.hlsl @@ -20,13 +20,13 @@ void HitMain(inout RayHitInfoPacked RayData, BuiltInTriangleIntersectionAttribut { float HitT = RayTCurrent(); RayData.PackedHitInfoA.x = HitT; - uint offs = 0; + int offs = 0; uint use_rcp = USE_RCP; float offsfloat = gParamBlock.sbuf.Load(offs); use_rcp |= HitT > 0.0; - if (use_rcp) + if (use_rcp != 0) RayData.PackedHitInfoA.y = rcp(offsfloat); else if ((use_rcp > 0) & (offsfloat == 0.0)) RayData.PackedHitInfoA.y = rsqrt(offsfloat + 1.0); diff --git a/tests/compute/array-existential-parameter.slang b/tests/compute/array-existential-parameter.slang index 2775c2add..813c5a40b 100644 --- a/tests/compute/array-existential-parameter.slang +++ b/tests/compute/array-existential-parameter.slang @@ -28,7 +28,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { let tid = dispatchThreadID.x; - let inputVal : int = tid; + let inputVal : int = int(tid); let outputVal = gCb.values[0].run(inputVal) + gCb2.values[0].run(inputVal); gOutputBuffer[tid] = outputVal; diff --git a/tests/compute/array-param.slang b/tests/compute/array-param.slang index 3545dd75f..1ef913a8f 100644 --- a/tests/compute/array-param.slang +++ b/tests/compute/array-param.slang @@ -17,9 +17,9 @@ void writeArray(inout float3 a[4]) } [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { float3 b[4]; writeArray(b); - outputBuffer[dispatchThreadID.x] = b[0].x; + outputBuffer[dispatchThreadID.x] = int(b[0].x); } \ No newline at end of file diff --git a/tests/compute/assoctype-lookup.slang b/tests/compute/assoctype-lookup.slang index e94c5471e..348391e21 100644 --- a/tests/compute/assoctype-lookup.slang +++ b/tests/compute/assoctype-lookup.slang @@ -42,7 +42,7 @@ int test(int val) { OutputType rs; rs.field.boneIds = 256; - return rs.field.boneIds; + return int(rs.field.boneIds); } //TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=gOutputBuffer @@ -52,7 +52,7 @@ RWStructuredBuffer gOutputBuffer; void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { uint tid = dispatchThreadID.x; - int inputVal = tid; + int inputVal = int(tid); int outputVal = test(inputVal); gOutputBuffer[tid] = outputVal; } \ No newline at end of file diff --git a/tests/compute/assoctype-nested.slang b/tests/compute/assoctype-nested.slang index 7bb251a26..a4a994e10 100644 --- a/tests/compute/assoctype-nested.slang +++ b/tests/compute/assoctype-nested.slang @@ -53,9 +53,9 @@ int test(int val) RWStructuredBuffer gOutputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inputVal = tid; int outputVal = test(inputVal); gOutputBuffer[tid] = outputVal; diff --git a/tests/compute/bound-check-zero-index.slang b/tests/compute/bound-check-zero-index.slang index e8244886e..61cb2e52e 100644 --- a/tests/compute/bound-check-zero-index.slang +++ b/tests/compute/bound-check-zero-index.slang @@ -25,7 +25,7 @@ RWStructuredBuffer outputBuffer; RWStructuredBuffer outputBuffer2; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int tid = dispatchThreadID.x; diff --git a/tests/compute/buffer-layout.slang b/tests/compute/buffer-layout.slang index 5caacff31..8c71904c6 100644 --- a/tests/compute/buffer-layout.slang +++ b/tests/compute/buffer-layout.slang @@ -121,9 +121,9 @@ int test(int val) [numthreads(4, 1, 1)] void computeMain( - uint3 dispatchThreadID : SV_DispatchThreadID) + int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); diff --git a/tests/compute/buffer-type-splitting.slang b/tests/compute/buffer-type-splitting.slang index d9fee4254..0ccad15de 100644 --- a/tests/compute/buffer-type-splitting.slang +++ b/tests/compute/buffer-type-splitting.slang @@ -17,15 +17,15 @@ struct S S s[2]; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint i = dispatchThreadID.x; + int i = dispatchThreadID.x; - int val = + int val = int( s[0].a.Load(i * 4) + s[1].a.Load(i * 4)*16 + s[0].b.Load(i * 4)*256 - + s[1].b.Load(i * 4)*4096; + + s[1].b.Load(i * 4)*4096); outputBuffer[i] = val; } \ No newline at end of file diff --git a/tests/compute/byte-address-buffer.slang b/tests/compute/byte-address-buffer.slang index 462002edf..9bba63a1f 100644 --- a/tests/compute/byte-address-buffer.slang +++ b/tests/compute/byte-address-buffer.slang @@ -20,12 +20,12 @@ void test(int val) { uint tmp = val; - tmp = inputBuffer.Load(tmp * 4); + tmp = inputBuffer.Load(int(tmp * 4)); - uint2 pair = inputBuffer.Load2(tmp * 4); + uint2 pair = inputBuffer.Load2(int(tmp * 4)); tmp = (pair.x + pair.y) & 0xF; - uint4 quad = inputBuffer.Load4(tmp * 4); + uint4 quad = inputBuffer.Load4(int(tmp * 4)); tmp = (quad.x + quad.y + quad.z + quad.w) & 0xF; outputBuffer.Store(val * 4, tmp); diff --git a/tests/compute/cast-zero-to-struct.slang b/tests/compute/cast-zero-to-struct.slang index 383662420..13bd4bf68 100644 --- a/tests/compute/cast-zero-to-struct.slang +++ b/tests/compute/cast-zero-to-struct.slang @@ -29,7 +29,7 @@ int test(int val) RWStructuredBuffer gOutputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 tid : SV_DispatchThreadID) +void computeMain(int3 tid : SV_DispatchThreadID) { int inVal = tid.x; int outVal = test(inVal); diff --git a/tests/compute/constexpr.slang b/tests/compute/constexpr.slang index 0d46d81a5..cf308e7d5 100644 --- a/tests/compute/constexpr.slang +++ b/tests/compute/constexpr.slang @@ -100,7 +100,7 @@ FragmentStageOutput fragmentMain(FragmentStageInput input) output.fragment.color = float4(color, 1.0); float4 val = float4(color, 1.0); - val = val - 16*tex.Sample(samp, uv, ab); + val = val - 16*tex.Sample(samp, uv, int2(ab)); outputBuffer[0] = 1; diff --git a/tests/compute/dynamic-dispatch-13.slang b/tests/compute/dynamic-dispatch-13.slang index d44029c23..f9ad9683b 100644 --- a/tests/compute/dynamic-dispatch-13.slang +++ b/tests/compute/dynamic-dispatch-13.slang @@ -22,7 +22,7 @@ RWStructuredBuffer gCb; RWStructuredBuffer gCb1; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { let tid = dispatchThreadID.x; diff --git a/tests/compute/dynamic-dispatch-14.slang b/tests/compute/dynamic-dispatch-14.slang index 7abb302f0..e605132c6 100644 --- a/tests/compute/dynamic-dispatch-14.slang +++ b/tests/compute/dynamic-dispatch-14.slang @@ -33,7 +33,7 @@ RWStructuredBuffer gCb; RWStructuredBuffer gCb1; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { let tid = dispatchThreadID.x; diff --git a/tests/compute/dynamic-dispatch-bindless-texture.slang b/tests/compute/dynamic-dispatch-bindless-texture.slang index 8a9d0c128..4611fbd48 100644 --- a/tests/compute/dynamic-dispatch-bindless-texture.slang +++ b/tests/compute/dynamic-dispatch-bindless-texture.slang @@ -14,7 +14,7 @@ RWStructuredBuffer gOutputBuffer; StructuredBuffer gCb; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { let tid = dispatchThreadID.x; @@ -22,7 +22,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) IInterface v0 = gCb.Load(0); SamplerState sampler; let outputVal = v0.run(); - gOutputBuffer[tid] = trunc(outputVal); + gOutputBuffer[tid] = uint(trunc(outputVal)); } //TEST_INPUT: globalExistentialType __Dynamic diff --git a/tests/compute/entry-point-uniform-params.slang b/tests/compute/entry-point-uniform-params.slang index f97874696..d150c4241 100644 --- a/tests/compute/entry-point-uniform-params.slang +++ b/tests/compute/entry-point-uniform-params.slang @@ -43,7 +43,7 @@ void computeMain( //TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer uniform RWStructuredBuffer outputBuffer, - uint3 dispatchThreadID : SV_DispatchThreadID) + int3 dispatchThreadID : SV_DispatchThreadID) { int tid = dispatchThreadID.x; diff --git a/tests/compute/enum.slang b/tests/compute/enum.slang index cae18404e..fe35f438c 100644 --- a/tests/compute/enum.slang +++ b/tests/compute/enum.slang @@ -24,7 +24,7 @@ int test(int val) if(c == Color.Red) { - if(val & 1) + if((val & 1) != 0) { c = Color.Blue; } @@ -56,9 +56,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int val = int(tid); val = test(val); diff --git a/tests/compute/frem.slang b/tests/compute/frem.slang index 75207a8d0..7890b9c9a 100644 --- a/tests/compute/frem.slang +++ b/tests/compute/frem.slang @@ -20,9 +20,9 @@ int test(int inVal) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/compute/half-calc.slang b/tests/compute/half-calc.slang index 0f321ef98..bdb815eb2 100644 --- a/tests/compute/half-calc.slang +++ b/tests/compute/half-calc.slang @@ -22,9 +22,9 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) //half offset = v2.x + v2.y; - half offset = 0.0f; + half offset = half(0.0f); - half v = tid; + half v = half(tid); v *= half(3.0f); v += half(1.0f); v += offset; diff --git a/tests/compute/half-rw-texture-convert.slang b/tests/compute/half-rw-texture-convert.slang index f3d8eedb5..1d98dd770 100644 --- a/tests/compute/half-rw-texture-convert.slang +++ b/tests/compute/half-rw-texture-convert.slang @@ -27,7 +27,7 @@ RWTexture2D rwt2D_4; RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int idx = dispatchThreadID.x; diff --git a/tests/compute/half-rw-texture-convert2.slang b/tests/compute/half-rw-texture-convert2.slang index 1937b4c8e..8b9a329bc 100644 --- a/tests/compute/half-rw-texture-convert2.slang +++ b/tests/compute/half-rw-texture-convert2.slang @@ -24,7 +24,7 @@ RWTexture2D rwt2D_4; RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int idx = dispatchThreadID.x; diff --git a/tests/compute/half-structured-buffer.slang b/tests/compute/half-structured-buffer.slang index e701bb0fa..973e84e7b 100644 --- a/tests/compute/half-structured-buffer.slang +++ b/tests/compute/half-structured-buffer.slang @@ -25,7 +25,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) Thing thing; thing.pos = tid; - thing.color = half4(base, base + 1.0f, base + 2.0f, base + 3.0f); + thing.color = half4(float4(base, base + 1.0f, base + 2.0f, base + 3.0f)); thing.radius = v; outputBuffer[tid] = thing; diff --git a/tests/compute/half-vector-calc.slang b/tests/compute/half-vector-calc.slang index b145e27ec..6a888e263 100644 --- a/tests/compute/half-vector-calc.slang +++ b/tests/compute/half-vector-calc.slang @@ -8,16 +8,16 @@ RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int x = tid.x; half2 v3 = half2(float(x)); - half2 v0 = half2(x * 2.0f, x * 0.5f); - half3 v1 = half3(x * 2.0f, x * 0.5f, x - 1.0f); - half4 v2 = half4(x + 1, x - 1, x + 2 , x - 2); + half2 v0 = half2(float2(x * 2.0f, x * 0.5f)); + half3 v1 = half3(half(x * 2.0f), half(x * 0.5f), half(x - 1.0f)); + half4 v2 = half4(half(x + 1), half(x - 1), half(x + 2) , half(x - 2)); v1 += v0.yxy; v1 += v2.wzy; diff --git a/tests/compute/interface-local.slang b/tests/compute/interface-local.slang index 714a72cca..4c6e78cc2 100644 --- a/tests/compute/interface-local.slang +++ b/tests/compute/interface-local.slang @@ -44,7 +44,7 @@ RWStructuredBuffer gOutputBuffer; void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { uint tid = dispatchThreadID.x; - int inputVal = tid; + int inputVal = int(tid); int outputVal = test(inputVal); gOutputBuffer[tid] = outputVal; } \ No newline at end of file diff --git a/tests/compute/interface-param.slang b/tests/compute/interface-param.slang index 3f557d8de..7d9307522 100644 --- a/tests/compute/interface-param.slang +++ b/tests/compute/interface-param.slang @@ -36,9 +36,9 @@ int test(int val) RWStructuredBuffer gOutputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inputVal = tid; int outputVal = test(inputVal); gOutputBuffer[tid] = outputVal; diff --git a/tests/compute/interface-shader-param-in-struct.slang b/tests/compute/interface-shader-param-in-struct.slang index 5080e4d57..1a4b12280 100644 --- a/tests/compute/interface-shader-param-in-struct.slang +++ b/tests/compute/interface-shader-param-in-struct.slang @@ -70,7 +70,7 @@ void computeMain( //TEST_INPUT: entryPointExistentialType MyModifier uniform Stuff stuff, - uint3 dispatchThreadID : SV_DispatchThreadID) + int3 dispatchThreadID : SV_DispatchThreadID) { let tid = dispatchThreadID.x; diff --git a/tests/compute/interface-shader-param.slang b/tests/compute/interface-shader-param.slang index e7c6ceb6a..a43b6f695 100644 --- a/tests/compute/interface-shader-param.slang +++ b/tests/compute/interface-shader-param.slang @@ -92,7 +92,7 @@ uniform IRandomNumberGenerationStrategy gStrategy; void computeMain( //TEST_INPUT:set modifier = new MyModifier{} uniform IModifier modifier, - uint3 dispatchThreadID : SV_DispatchThreadID) + int3 dispatchThreadID : SV_DispatchThreadID) { let tid = dispatchThreadID.x; diff --git a/tests/compute/interface-static-method.slang b/tests/compute/interface-static-method.slang index d526f7c47..05224bdea 100644 --- a/tests/compute/interface-static-method.slang +++ b/tests/compute/interface-static-method.slang @@ -50,7 +50,7 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int tid = dispatchThreadID.x; outputBuffer[tid] = test(tid); diff --git a/tests/compute/matrix-layout-structured-buffer.slang b/tests/compute/matrix-layout-structured-buffer.slang index bdc2e1ced..6893a5df9 100644 --- a/tests/compute/matrix-layout-structured-buffer.slang +++ b/tests/compute/matrix-layout-structured-buffer.slang @@ -30,9 +30,9 @@ int test(int val) RWStructuredBuffer buffer; [numthreads(12, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int val = tid; val = test(val); diff --git a/tests/compute/matrix-layout.hlsl b/tests/compute/matrix-layout.hlsl index c655d06c7..571003a10 100644 --- a/tests/compute/matrix-layout.hlsl +++ b/tests/compute/matrix-layout.hlsl @@ -64,9 +64,9 @@ int test(int val) RWStructuredBuffer buffer; [numthreads(12, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int val = tid; val = test(val); diff --git a/tests/compute/modern-syntax.slang b/tests/compute/modern-syntax.slang index e1a9ad146..d6bdcd3bd 100644 --- a/tests/compute/modern-syntax.slang +++ b/tests/compute/modern-syntax.slang @@ -19,9 +19,9 @@ func test(val: MyInt) -> MyInt RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int val = test(tid); outputBuffer[tid] = val; } \ No newline at end of file diff --git a/tests/compute/multiple-continue-sites.slang b/tests/compute/multiple-continue-sites.slang index 0776bfbdb..cf5033c9e 100644 --- a/tests/compute/multiple-continue-sites.slang +++ b/tests/compute/multiple-continue-sites.slang @@ -13,7 +13,7 @@ int test(int inVal) { int ii = inVal; - for(;!(ii & 0x20); ii += 0x10) + for(;!bool(ii & 0x20); ii += 0x10) { if(ii == 2) { diff --git a/tests/compute/mutating-and-inout.slang b/tests/compute/mutating-and-inout.slang index a92be2025..37cc30870 100644 --- a/tests/compute/mutating-and-inout.slang +++ b/tests/compute/mutating-and-inout.slang @@ -41,7 +41,7 @@ int test(int val) } [numthreads(4, 1, 1)] -void computeMain(uint3 tid : SV_DispatchThreadID) +void computeMain(int3 tid : SV_DispatchThreadID) { int val = tid.x; val = test(val); diff --git a/tests/compute/mutating-methods.slang b/tests/compute/mutating-methods.slang index 73be4b604..6f561e9a6 100644 --- a/tests/compute/mutating-methods.slang +++ b/tests/compute/mutating-methods.slang @@ -45,7 +45,7 @@ int test(int x) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int tid = dispatchThreadID.x; outputBuffer[tid] = test(tid); diff --git a/tests/compute/pack-any-value-16bit.slang b/tests/compute/pack-any-value-16bit.slang index 1a7c96a16..07ad0590e 100644 --- a/tests/compute/pack-any-value-16bit.slang +++ b/tests/compute/pack-any-value-16bit.slang @@ -52,8 +52,8 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) v.v0 = 1; v.f0 = 2; v.v1 = 3; - v.v2 = 4; - v.v3 = 5; + v.v2 = half(4); + v.v3 = half(5); v.v4 = 6; IInterface dynamicObj1 = createDynamicObject(11, v);; gOutputBuffer[1] = dynamicObj1.run(); diff --git a/tests/compute/rw-texture-simple.slang b/tests/compute/rw-texture-simple.slang index 268337956..5113dc807 100644 --- a/tests/compute/rw-texture-simple.slang +++ b/tests/compute/rw-texture-simple.slang @@ -19,7 +19,7 @@ RWTexture3D rwt3D; RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int idx = dispatchThreadID.x; diff --git a/tests/compute/scope-operator.slang b/tests/compute/scope-operator.slang index 9b5b3f229..0622adc4a 100644 --- a/tests/compute/scope-operator.slang +++ b/tests/compute/scope-operator.slang @@ -38,7 +38,7 @@ int test(int val) if(c == Color::Red) { - if(val & 1) + if((val & 1) != 0) { c = Color::Blue; } diff --git a/tests/compute/semantic.slang b/tests/compute/semantic.slang index 49e9ff948..c0411f572 100644 --- a/tests/compute/semantic.slang +++ b/tests/compute/semantic.slang @@ -9,5 +9,5 @@ RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID, uint3 groupID : SV_GroupID, uint3 groupThreadID : SV_GroupThreadId) { - outputBuffer[dispatchThreadID.x] = (dispatchThreadID.x << 8) | (groupID.x << 4) | (groupThreadID.x); + outputBuffer[dispatchThreadID.x] = int((dispatchThreadID.x << 8) | (groupID.x << 4) | (groupThreadID.x)); } \ No newline at end of file diff --git a/tests/compute/static-const-array.slang b/tests/compute/static-const-array.slang index 2afa1f39e..f18f7cb15 100644 --- a/tests/compute/static-const-array.slang +++ b/tests/compute/static-const-array.slang @@ -15,7 +15,7 @@ int test(int val) } [numthreads(4, 1, 1)] -void computeMain(uint3 tid : SV_DispatchThreadID) +void computeMain(int3 tid : SV_DispatchThreadID) { int inVal = tid.x; int outVal = test(inVal); diff --git a/tests/compute/static-const-matrix-array.slang b/tests/compute/static-const-matrix-array.slang index 9a468b6ed..afe2468f2 100644 --- a/tests/compute/static-const-matrix-array.slang +++ b/tests/compute/static-const-matrix-array.slang @@ -28,7 +28,7 @@ float test(int inVal, int index) } [numthreads(8, 1, 1)] -void computeMain(uint3 tid : SV_DispatchThreadID) +void computeMain(int3 tid : SV_DispatchThreadID) { int inVal = tid.x; float outVal = test(inVal, inVal & 1); diff --git a/tests/compute/static-const-vector-array.slang b/tests/compute/static-const-vector-array.slang index edfe24028..e3611bcde 100644 --- a/tests/compute/static-const-vector-array.slang +++ b/tests/compute/static-const-vector-array.slang @@ -25,7 +25,7 @@ float test(int val) } [numthreads(8, 1, 1)] -void computeMain(uint3 tid : SV_DispatchThreadID) +void computeMain(int3 tid : SV_DispatchThreadID) { int inVal = tid.x; float outVal = test(inVal); diff --git a/tests/compute/struct-make.slang b/tests/compute/struct-make.slang index f42d76876..6cc3c48e5 100644 --- a/tests/compute/struct-make.slang +++ b/tests/compute/struct-make.slang @@ -20,9 +20,9 @@ struct Thing RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; Thing thing = Thing::make(tid); diff --git a/tests/compute/structured-buffer-of-matrices.slang b/tests/compute/structured-buffer-of-matrices.slang index b76061310..faa312fc2 100644 --- a/tests/compute/structured-buffer-of-matrices.slang +++ b/tests/compute/structured-buffer-of-matrices.slang @@ -33,7 +33,7 @@ int test(int val) } [numthreads(4, 1, 1)] -void computeMain(uint3 tid : SV_DispatchThreadID) +void computeMain(int3 tid : SV_DispatchThreadID) { int value = tid.x; value = test(value); diff --git a/tests/compute/texture-get-dimensions.slang b/tests/compute/texture-get-dimensions.slang index 91911f18a..526e9feb1 100644 --- a/tests/compute/texture-get-dimensions.slang +++ b/tests/compute/texture-get-dimensions.slang @@ -30,7 +30,7 @@ SamplerState samplerState; RWStructuredBuffer outputBuffer; [numthreads(8, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int idx = dispatchThreadID.x; diff --git a/tests/compute/texture-simple.slang b/tests/compute/texture-simple.slang index f9acfe3f0..efa83edfb 100644 --- a/tests/compute/texture-simple.slang +++ b/tests/compute/texture-simple.slang @@ -32,7 +32,7 @@ SamplerState samplerState; RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int idx = dispatchThreadID.x; float u = idx * (1.0f / 4); diff --git a/tests/compute/unbounded-array-of-array-syntax.slang b/tests/compute/unbounded-array-of-array-syntax.slang index 887b95d07..bba8605f2 100644 --- a/tests/compute/unbounded-array-of-array-syntax.slang +++ b/tests/compute/unbounded-array-of-array-syntax.slang @@ -29,7 +29,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) if (innerIndex >= bufferCount) { - innerIndex = bufferCount - 1; + innerIndex = int(bufferCount - 1); } outputBuffer[index] = buffer[innerIndex]; } \ No newline at end of file diff --git a/tests/compute/vector-scalar-compare.slang b/tests/compute/vector-scalar-compare.slang index cd1088062..dab993a4c 100644 --- a/tests/compute/vector-scalar-compare.slang +++ b/tests/compute/vector-scalar-compare.slang @@ -7,9 +7,9 @@ RWStructuredBuffer outputBuffer; [numthreads(4, 4, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint2 threadInGroup = dispatchThreadID.xy; + int2 threadInGroup = dispatchThreadID.xy; int r = 0; if(all((threadInGroup & 1) == 0)) diff --git a/tests/cross-compile/array-of-buffers.slang b/tests/cross-compile/array-of-buffers.slang index de87e6d9d..31738ccfc 100644 --- a/tests/cross-compile/array-of-buffers.slang +++ b/tests/cross-compile/array-of-buffers.slang @@ -27,6 +27,6 @@ float4 main() : SV_Target return cb [index] .f + sb1[index][index].f + sb2[index][index] - + float4(bb[index].Load(index*4)); + + float4(bb[index].Load(int(index*4))); } diff --git a/tests/cross-compile/get-dimensions.slang b/tests/cross-compile/get-dimensions.slang index 13874a6e2..65c2a1a70 100644 --- a/tests/cross-compile/get-dimensions.slang +++ b/tests/cross-compile/get-dimensions.slang @@ -35,7 +35,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) if (index == 0) { buffer0.GetDimensions(count, stride); - last = buffer0.Load(count - 1); + last = buffer0.Load(int(count - 1)); } else if (index == 1) { @@ -45,13 +45,13 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) else if (index == 2) { buffer2.GetDimensions(count, stride); - last = int(buffer2.Load(count -1)); + last = int(buffer2.Load(int(count - 1))); } else { buffer3.GetDimensions(count, stride); - last = buffer3.Load(count - 1).a; + last = buffer3.Load(int(count - 1)).a; } outputBuffer[index * 2] = int(count); diff --git a/tests/cross-compile/image-load.slang b/tests/cross-compile/image-load.slang index 7f125bd5a..dc80288e6 100644 --- a/tests/cross-compile/image-load.slang +++ b/tests/cross-compile/image-load.slang @@ -15,5 +15,5 @@ ParameterBlock gParams; void main(uint3 tid : SV_DispatchThreadID) { - float f = gParams.tex.Load(int3(tid.xy, tid.z)); + float f = gParams.tex.Load(int3(int2(tid.xy), int(tid.z))); } diff --git a/tests/cross-compile/simple-cross-compile.slang b/tests/cross-compile/simple-cross-compile.slang index e5fe9d3cc..b85d5cb53 100644 --- a/tests/cross-compile/simple-cross-compile.slang +++ b/tests/cross-compile/simple-cross-compile.slang @@ -19,7 +19,7 @@ int test(int val) if(c == Color.Red) { - if(val & 1) + if((val & 1) != 0) { c = Color.Blue; } diff --git a/tests/diagnostics/attribute-error.slang.expected b/tests/diagnostics/attribute-error.slang.expected index 386d08422..cde43142d 100644 --- a/tests/diagnostics/attribute-error.slang.expected +++ b/tests/diagnostics/attribute-error.slang.expected @@ -6,6 +6,9 @@ tests/diagnostics/attribute-error.slang(19): error 30019: expected an expression tests/diagnostics/attribute-error.slang(22): error 31002: attribute 'MyStruct' is not valid here [MyStruct(0, 10.0)] // attribute does not apply to this construct ^~~~~~~~ +tests/diagnostics/attribute-error.slang(24): warning 30081: implicit conversion from 'float' to 'int' is not recommended + [DefaultValue(2.0)] // attribute arg type mismatch + ^~~ tests/diagnostics/attribute-error.slang(24): error 39999: expression does not evaluate to a compile-time constant [DefaultValue(2.0)] // attribute arg type mismatch ^~~ diff --git a/tests/diagnostics/bool-to-float.slang b/tests/diagnostics/bool-to-float.slang new file mode 100644 index 000000000..087cf86b3 --- /dev/null +++ b/tests/diagnostics/bool-to-float.slang @@ -0,0 +1,13 @@ +// bool-to-float.slang + +// Diagnostic messages related to converting bool to float + +//DIAGNOSTIC_TEST:SIMPLE: + +struct Test +{ + void test() + { + float f = true; + } +} diff --git a/tests/diagnostics/bool-to-float.slang.expected b/tests/diagnostics/bool-to-float.slang.expected new file mode 100644 index 000000000..e1d851163 --- /dev/null +++ b/tests/diagnostics/bool-to-float.slang.expected @@ -0,0 +1,8 @@ +result code = 0 +standard error = { +tests/diagnostics/bool-to-float.slang(11): warning 30081: implicit conversion from 'bool' to 'float' is not recommended + float f = true; + ^~~~ +} +standard output = { +} diff --git a/tests/diagnostics/constexpr-error.slang b/tests/diagnostics/constexpr-error.slang index f0de9280d..a5b98264b 100644 --- a/tests/diagnostics/constexpr-error.slang +++ b/tests/diagnostics/constexpr-error.slang @@ -21,7 +21,7 @@ float4 main() : SV_Target float4 result = 0.0f; // Okay, immediate constant - result += t.Sample(s, uv, uint2(0,0)); + result += t.Sample(s, uv, int2(0,0)); // Error: data passed through cbuffer isn't compile-time constant result += t.Sample(s, uv, offset); @@ -32,13 +32,13 @@ float4 main() : SV_Target { ii = 1; } - result += t.Sample(s, uv, uint2(ii)); + result += t.Sample(s, uv, int2(ii)); // Error: data computed in loop isn't compile-time constant // (and loop isn't unroll-able) for(uint jj = 0; jj < uv.y; jj++) { - result += t.Sample(s, uv, uint2(jj)); + result += t.Sample(s, uv, int2(jj)); } return result; diff --git a/tests/diagnostics/constexpr-error.slang.expected b/tests/diagnostics/constexpr-error.slang.expected index 4dea62ca1..a744fcafd 100644 --- a/tests/diagnostics/constexpr-error.slang.expected +++ b/tests/diagnostics/constexpr-error.slang.expected @@ -1,14 +1,17 @@ result code = -1 standard error = { +tests/diagnostics/constexpr-error.slang(27): warning 30081: implicit conversion from 'vector' to 'vector' is not recommended + result += t.Sample(s, uv, offset); + ^~~~~~ tests/diagnostics/constexpr-error.slang(27): error 40006: expected a compile-time constant result += t.Sample(s, uv, offset); ^~~~~~ tests/diagnostics/constexpr-error.slang(35): error 40006: expected a compile-time constant - result += t.Sample(s, uv, uint2(ii)); - ^ + result += t.Sample(s, uv, int2(ii)); + ^ tests/diagnostics/constexpr-error.slang(41): error 40006: expected a compile-time constant - result += t.Sample(s, uv, uint2(jj)); - ^ + result += t.Sample(s, uv, int2(jj)); + ^ } standard output = { } diff --git a/tests/diagnostics/enum-implicit-conversion.slang.expected b/tests/diagnostics/enum-implicit-conversion.slang.expected index 61164bbaa..4efdc9c75 100644 --- a/tests/diagnostics/enum-implicit-conversion.slang.expected +++ b/tests/diagnostics/enum-implicit-conversion.slang.expected @@ -1,5 +1,11 @@ result code = -1 standard error = { +tests/diagnostics/enum-implicit-conversion.slang(18): warning 30081: implicit conversion from 'uint' to 'int' is not recommended +int foo(uint x) { return x * 256 * 16; } + ^ +tests/diagnostics/enum-implicit-conversion.slang(22): warning 30081: implicit conversion from 'uint' to 'int' is not recommended +int bar(uint x) { return x * 256 * 256 * 16; } + ^ tests/diagnostics/enum-implicit-conversion.slang(27): error 30019: expected an expression of type 'Color', got 'int' Color c = val; ^~~ @@ -17,6 +23,9 @@ tests/diagnostics/enum-implicit-conversion.slang(42): error 39999: ambiguous cal ^ tests/diagnostics/enum-implicit-conversion.slang(18): note 39999: candidate: func foo(uint) -> int tests/diagnostics/enum-implicit-conversion.slang(17): note 39999: candidate: func foo(int) -> int +tests/diagnostics/enum-implicit-conversion.slang(47): warning 30081: implicit conversion from 'uint' to 'int' is not recommended + return x + y + z; + ^ } standard output = { } diff --git a/tests/diagnostics/generic-invalid-type-specialization.slang.expected b/tests/diagnostics/generic-invalid-type-specialization.slang.expected index 3c323ef46..0fc68f6b6 100644 --- a/tests/diagnostics/generic-invalid-type-specialization.slang.expected +++ b/tests/diagnostics/generic-invalid-type-specialization.slang.expected @@ -1,5 +1,8 @@ result code = -1 standard error = { +tests/diagnostics/generic-invalid-type-specialization.slang(14): warning 30081: implicit conversion from 'uint' to 'int' is not recommended + int index = dispatchThreadID.x; + ^ tests/diagnostics/generic-invalid-type-specialization.slang(17): error 30060: expected a type, got a 'int' Check<2 + 2> v; ^ diff --git a/tests/diagnostics/local-line.slang b/tests/diagnostics/local-line.slang index 1cdeba7e4..973c234c0 100644 --- a/tests/diagnostics/local-line.slang +++ b/tests/diagnostics/local-line.slang @@ -22,21 +22,21 @@ int doThing(int a, int b) [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int a = dispatchThreadID.x; - int b = dispatchThreadID.y; - int c = dispatchThreadID.z; + int a = int(dispatchThreadID.x); + int b = int(dispatchThreadID.y); + int c = int(dispatchThreadID.z); int d = a + b * c; int e = d + c / 2; for (int i = 0; i < b; ++i) { - if (e > 10 && i & 2) + if (e > 10 && (i & 2) != 0) { a += b; b -= c; c += c; d = d + e + a; e = a; } else { - a = e; b = c + c; d += d + __SyntaxError(); e = doThing(e, dispatchThreadID.x); + a = e; b = c + c; d += d + __SyntaxError(); e = doThing(e, int(dispatchThreadID.x)); } } diff --git a/tests/doc/doc.slang b/tests/doc/doc.slang index 1e04171a0..e75768b9e 100644 --- a/tests/doc/doc.slang +++ b/tests/doc/doc.slang @@ -140,21 +140,21 @@ int doThing(int a, ///< a parameter [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int a = dispatchThreadID.x; - int b = dispatchThreadID.y; - int c = dispatchThreadID.z; + int a = int(dispatchThreadID.x); + int b = int(dispatchThreadID.y); + int c = int(dispatchThreadID.z); int d = a + b * c; int e = d + c / 2; for (int i = 0; i < b; ++i) { - if (e > 10 && i & 2) + if (e > 10 && (i & 2) != 0) { a += b; b -= c; c += c; d = d + e + a; e = a; } else { - a = e; b = c + c; d += d + __SyntaxError(); e = doThing(e, dispatchThreadID.x); + a = e; b = c + c; d += d + __SyntaxError(); e = doThing(e, int(dispatchThreadID.x)); } } diff --git a/tests/downstream/dxc-x-arg.slang b/tests/downstream/dxc-x-arg.slang index 93b24a7ad..9925e2b60 100644 --- a/tests/downstream/dxc-x-arg.slang +++ b/tests/downstream/dxc-x-arg.slang @@ -12,7 +12,7 @@ RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { outputBuffer[dispatchThreadID.x] = dispatchThreadID.x; } \ No newline at end of file diff --git a/tests/experimental/liveness/liveness-2.slang b/tests/experimental/liveness/liveness-2.slang index 9d4ab275d..06382971f 100644 --- a/tests/experimental/liveness/liveness-2.slang +++ b/tests/experimental/liveness/liveness-2.slang @@ -21,7 +21,7 @@ int calcThing(int offset) [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int index = dispatchThreadID.x; + int index = int(dispatchThreadID.x); outputBuffer[index] = calcThing(index); } diff --git a/tests/experimental/liveness/liveness-3.slang b/tests/experimental/liveness/liveness-3.slang index 1d289aa68..a0c5c8604 100644 --- a/tests/experimental/liveness/liveness-3.slang +++ b/tests/experimental/liveness/liveness-3.slang @@ -20,7 +20,7 @@ int calcThing(int offset) another[i & 1] += modRange; - if (i % 3) + if (i % 3 != 0) { offset += 1; } @@ -43,7 +43,7 @@ int calcThing(int offset) [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int index = dispatchThreadID.x; + int index = int(dispatchThreadID.x); outputBuffer[index] = calcThing(index); } diff --git a/tests/experimental/liveness/liveness-3.slang.expected b/tests/experimental/liveness/liveness-3.slang.expected index 614fd1387..58f562d86 100644 --- a/tests/experimental/liveness/liveness-3.slang.expected +++ b/tests/experimental/liveness/liveness-3.slang.expected @@ -72,7 +72,7 @@ int calcThing_0(int offset_0) another_0[i_0 & 1] = another_0[i_0 & 1] + modRange_0; int _S6 = i_0 % 3; int _S7; - if(bool(_S6)) + if(_S6 != 0) { int _S8 = _S5; livenessEnd_0(_S5, 0); diff --git a/tests/experimental/liveness/liveness-4.slang b/tests/experimental/liveness/liveness-4.slang index d18d127f6..a835f3a4e 100644 --- a/tests/experimental/liveness/liveness-4.slang +++ b/tests/experimental/liveness/liveness-4.slang @@ -29,7 +29,7 @@ int calcThing(int offset) [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int index = dispatchThreadID.x; + int index = int(dispatchThreadID.x); outputBuffer[index] = calcThing(index); } diff --git a/tests/experimental/liveness/liveness-5.slang b/tests/experimental/liveness/liveness-5.slang index 52370d61b..98fa6ff6f 100644 --- a/tests/experimental/liveness/liveness-5.slang +++ b/tests/experimental/liveness/liveness-5.slang @@ -36,7 +36,7 @@ int calcThing(int offset) [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int index = dispatchThreadID.x; + int index = int(dispatchThreadID.x); outputBuffer[index] = calcThing(index); } diff --git a/tests/experimental/liveness/liveness-6.slang b/tests/experimental/liveness/liveness-6.slang index 890b06fe5..d124efd35 100644 --- a/tests/experimental/liveness/liveness-6.slang +++ b/tests/experimental/liveness/liveness-6.slang @@ -41,7 +41,7 @@ int calcThing(int offset) [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int index = dispatchThreadID.x; + int index = int(dispatchThreadID.x); outputBuffer[index] = calcThing(index); } diff --git a/tests/experimental/liveness/liveness-7.slang b/tests/experimental/liveness/liveness-7.slang index 0324f90b9..5d8ed48cc 100644 --- a/tests/experimental/liveness/liveness-7.slang +++ b/tests/experimental/liveness/liveness-7.slang @@ -12,7 +12,7 @@ int calcThing(int offset) for (int k = 0; k < 20; ++k) { - if ((k + offset) & 1) + if (((k + offset) & 1) != 0) { return arr[0]; } @@ -26,7 +26,7 @@ int calcThing(int offset) [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int index = dispatchThreadID.x; + int index = int(dispatchThreadID.x); outputBuffer[index] = calcThing(index); } diff --git a/tests/experimental/liveness/liveness-7.slang.expected b/tests/experimental/liveness/liveness-7.slang.expected index 5b0c5b58a..52eafa5d1 100644 --- a/tests/experimental/liveness/liveness-7.slang.expected +++ b/tests/experimental/liveness/liveness-7.slang.expected @@ -35,7 +35,7 @@ int calcThing_0(int offset_0) { int _S3 = _S2; livenessEnd_0(_S2, 0); - if(bool(0 + _S3 & 1)) + if((0 + _S3 & 1) != 0) { int _S4[2] = arr_0; livenessEnd_1(arr_0, 0); diff --git a/tests/experimental/liveness/liveness.slang b/tests/experimental/liveness/liveness.slang index cf3d37a8f..a84cf268a 100644 --- a/tests/experimental/liveness/liveness.slang +++ b/tests/experimental/liveness/liveness.slang @@ -28,7 +28,7 @@ int someSlowFunc(int a) { v = ((v >> 1) | (v << 31)) * i; } - return v; + return int(v); } int somethingElse(inout SomeStruct s) @@ -45,7 +45,7 @@ int doThing(SomeStruct s) [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int index = dispatchThreadID.x; + int index = int(dispatchThreadID.x); int res = index; @@ -57,7 +57,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) SomeStruct t = makeSomeStruct(); SomeStruct u = {}; - if (v & 0x100) + if ((v & 0x100) != 0) { s.x = anotherBuffer[v & 3]; t.x = anotherBuffer[v & 3]; diff --git a/tests/experimental/liveness/liveness.slang.expected b/tests/experimental/liveness/liveness.slang.expected index c74206573..0a39f0225 100644 --- a/tests/experimental/liveness/liveness.slang.expected +++ b/tests/experimental/liveness/liveness.slang.expected @@ -114,7 +114,7 @@ void main() const int _S9[100] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; SomeStruct_0 u_0 = { 0, 0, _S9 }; SomeStruct_0 u_1; - if(bool(v_1 & 256)) + if((v_1 & 256) != 0) { s_3.x_0 = ((anotherBuffer_0)._data[(uint(v_1 & 3))]); t_0.x_0 = ((anotherBuffer_0)._data[(uint(v_1 & 3))]); diff --git a/tests/hlsl-intrinsic/active-mask/switch.slang b/tests/hlsl-intrinsic/active-mask/switch.slang index 47d279f20..280388c68 100644 --- a/tests/hlsl-intrinsic/active-mask/switch.slang +++ b/tests/hlsl-intrinsic/active-mask/switch.slang @@ -18,7 +18,7 @@ RWStructuredBuffer buffer; #define THREAD_COUNT 4 #define LOC_COUNT 5 -#define WRITE(LOC) buffer[tid + (LOC)*THREAD_COUNT] = 0xA0000000 | (tid << 24) | (LOC << 8) | WaveGetActiveMask() +#define WRITE(LOC) buffer[tid + (LOC)*THREAD_COUNT] = 0xA0000000 | (tid << 24) | (LOC << 8) | int(WaveGetActiveMask()) //TEST_INPUT:cbuffer(data=[0 1]):name C cbuffer C @@ -51,7 +51,7 @@ void test(int tid) } [numthreads(THREAD_COUNT, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { test(dispatchThreadID.x); } \ No newline at end of file diff --git a/tests/hlsl-intrinsic/bit-cast/bit-cast-16-bit.slang b/tests/hlsl-intrinsic/bit-cast/bit-cast-16-bit.slang index adeb83a67..660ba7ef8 100644 --- a/tests/hlsl-intrinsic/bit-cast/bit-cast-16-bit.slang +++ b/tests/hlsl-intrinsic/bit-cast/bit-cast-16-bit.slang @@ -7,9 +7,9 @@ //TEST_INPUT:ubuffer(data=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16], stride=4):name inputBuffer RWStructuredBuffer inputBuffer; -int16_t readI(inout int index) { return inputBuffer[(index++) & 0xF]; } -uint16_t readU(inout int index) { return inputBuffer[(index++) & 0xF]; } -float16_t readF(inout int index) { return float(inputBuffer[(index++) & 0xF]); } +int16_t readI(inout int index) { return int16_t(inputBuffer[(index++) & 0xF]); } +uint16_t readU(inout int index) { return int16_t(inputBuffer[(index++) & 0xF]); } +float16_t readF(inout int index) { return float16_t(float(inputBuffer[(index++) & 0xF])); } //TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0], stride=4):out,name outputBuffer RWStructuredBuffer outputBuffer; @@ -19,7 +19,7 @@ void write(int initial, inout int index, uint value) let tmp = index++; if((tmp & 3) == initial) { - outputBuffer[tmp & 0xF] = value; + outputBuffer[tmp & 0xF] = int(value); } } @@ -98,7 +98,7 @@ void test(int initial) [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { test(dispatchThreadID.x); } diff --git a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit-vector.slang b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit-vector.slang index 047637afb..8daae458e 100644 --- a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit-vector.slang +++ b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit-vector.slang @@ -48,7 +48,7 @@ int test(int val) } [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int tid = dispatchThreadID.x; outputBuffer[tid] = test(tid); diff --git a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit.slang b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit.slang index 2985b8902..03e5909db 100644 --- a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit.slang +++ b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-16bit.slang @@ -49,7 +49,7 @@ int test(int val) } [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int tid = dispatchThreadID.x; outputBuffer[tid] = test(tid); diff --git a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang index 6f987749f..6db93b5a3 100644 --- a/tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang +++ b/tests/hlsl-intrinsic/byte-address-buffer/byte-address-struct.slang @@ -44,7 +44,7 @@ int test(int val) } [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int tid = dispatchThreadID.x; outputBuffer[tid] = test(tid); diff --git a/tests/hlsl-intrinsic/literal-int64.slang b/tests/hlsl-intrinsic/literal-int64.slang index 226a12155..977c85a9f 100644 --- a/tests/hlsl-intrinsic/literal-int64.slang +++ b/tests/hlsl-intrinsic/literal-int64.slang @@ -18,7 +18,7 @@ RWStructuredBuffer outputBuffer; [numthreads(7, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { - int idx = int64_t(dispatchThreadID.x); + int idx = int(int64_t(dispatchThreadID.x)); uint64_t v = 0; diff --git a/tests/hlsl-intrinsic/scalar-int64.slang b/tests/hlsl-intrinsic/scalar-int64.slang index 68f3c4da9..f4518f198 100644 --- a/tests/hlsl-intrinsic/scalar-int64.slang +++ b/tests/hlsl-intrinsic/scalar-int64.slang @@ -37,5 +37,5 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) int64_t v = (ti * 0x400010035435435ll) / 3ll + 7ll - 9ll; - outputBuffer[idx] = int(v) ^ int(((v >> 32) & 0xffffffff)); + outputBuffer[uint(idx)] = int(v) ^ int(((v >> 32) & 0xffffffff)); } \ No newline at end of file diff --git a/tests/hlsl-intrinsic/scalar-uint.slang b/tests/hlsl-intrinsic/scalar-uint.slang index 2e35c782e..ed4bd419f 100644 --- a/tests/hlsl-intrinsic/scalar-uint.slang +++ b/tests/hlsl-intrinsic/scalar-uint.slang @@ -22,5 +22,5 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) ti += countbits(idx * 13); - outputBuffer[idx] = ti; + outputBuffer[idx] = int(ti); } \ No newline at end of file diff --git a/tests/hlsl-intrinsic/scalar-uint64.slang b/tests/hlsl-intrinsic/scalar-uint64.slang index 089a756fa..f75dd8acc 100644 --- a/tests/hlsl-intrinsic/scalar-uint64.slang +++ b/tests/hlsl-intrinsic/scalar-uint64.slang @@ -22,7 +22,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) ti += min(idx, 1ull); ti += clamp(idx * 10, 11, 23); - ti += countbits(idx * 13); + ti += countbits(uint(idx * 13)); // Math ti = ti - idx; diff --git a/tests/hlsl-intrinsic/wave-active-count-bits.slang b/tests/hlsl-intrinsic/wave-active-count-bits.slang index 45fdd7e02..105b95a6f 100644 --- a/tests/hlsl-intrinsic/wave-active-count-bits.slang +++ b/tests/hlsl-intrinsic/wave-active-count-bits.slang @@ -13,5 +13,5 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { int idx = int(dispatchThreadID.x); - outputBuffer[idx] = WaveActiveCountBits(idx & 5); + outputBuffer[idx] = int(WaveActiveCountBits(bool(idx & 5))); } \ No newline at end of file diff --git a/tests/hlsl-intrinsic/wave-get-lane-index.slang b/tests/hlsl-intrinsic/wave-get-lane-index.slang index e4beb7ce0..fb09022c2 100644 --- a/tests/hlsl-intrinsic/wave-get-lane-index.slang +++ b/tests/hlsl-intrinsic/wave-get-lane-index.slang @@ -9,12 +9,12 @@ RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int idx = dispatchThreadID.x; - int laneId = WaveGetLaneIndex(); + uint laneId = WaveGetLaneIndex(); // The laneCount will be dependent on target hardware. It seems a count of 1 is valid in spec. // For now we'll just check it's not 0. - int laneCount = WaveGetLaneCount(); - outputBuffer[idx] = ((laneCount > 0) ? 0x100 : 0) + laneId; + uint laneCount = WaveGetLaneCount(); + outputBuffer[idx] = int(((laneCount > 0) ? 0x100 : 0) + laneId); } \ No newline at end of file diff --git a/tests/hlsl-intrinsic/wave-mask/wave-get-active.slang b/tests/hlsl-intrinsic/wave-mask/wave-get-active.slang index d19436191..c05c7baa1 100644 --- a/tests/hlsl-intrinsic/wave-mask/wave-get-active.slang +++ b/tests/hlsl-intrinsic/wave-mask/wave-get-active.slang @@ -17,6 +17,6 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) uint4 multi = WaveGetActiveMulti(); // Should be 0xf, because numthreads is 4, 1, 1 - outputBuffer[idx * 2 + 0] = mask; - outputBuffer[idx * 2 + 1] = multi.x; + outputBuffer[idx * 2 + 0] = int(mask); + outputBuffer[idx * 2 + 1] = int(multi.x); } \ No newline at end of file diff --git a/tests/hlsl-intrinsic/wave-mask/wave-get-converged.slang b/tests/hlsl-intrinsic/wave-mask/wave-get-converged.slang index 1a7a46cea..d201f3e76 100644 --- a/tests/hlsl-intrinsic/wave-mask/wave-get-converged.slang +++ b/tests/hlsl-intrinsic/wave-mask/wave-get-converged.slang @@ -14,6 +14,6 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) int idx = int(dispatchThreadID.x); // Should be 0xf, because numthreads is 4, 1, 1 - outputBuffer[idx * 2 + 0] = WaveGetConvergedMask(); - outputBuffer[idx * 2 + 1] = WaveGetConvergedMulti().x; + outputBuffer[idx * 2 + 0] = int(WaveGetConvergedMask()); + outputBuffer[idx * 2 + 1] = int(WaveGetConvergedMulti().x); } \ No newline at end of file diff --git a/tests/hlsl-intrinsic/wave-mask/wave-matrix.slang b/tests/hlsl-intrinsic/wave-mask/wave-matrix.slang index 650671608..f333a59fb 100644 --- a/tests/hlsl-intrinsic/wave-mask/wave-matrix.slang +++ b/tests/hlsl-intrinsic/wave-mask/wave-matrix.slang @@ -32,7 +32,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) matrix r4 = WaveMaskBitAnd(mask, uv0); matrix r5 = r2 + r3 + r4; - matrix r6 = matrix(r5[0][0], r5[0][1], r5[1][0], r5[1][1]); + matrix r6 = matrix(int(r5[0][0]), int(r5[0][1]), int(r5[1][0]), int(r5[1][1])); matrix r = r0 + matrix(r1) + r6; diff --git a/tests/hlsl-intrinsic/wave-mask/wave-vector.slang b/tests/hlsl-intrinsic/wave-mask/wave-vector.slang index 0585bae53..b1f44f4fb 100644 --- a/tests/hlsl-intrinsic/wave-mask/wave-vector.slang +++ b/tests/hlsl-intrinsic/wave-mask/wave-vector.slang @@ -22,9 +22,9 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) int2 r0 = WaveMaskSum(mask, v0); float2 r1 = WaveMaskSum(mask, v1); - int2 r2 = WaveMaskBitXor(mask, uv0); - int2 r3 = WaveMaskBitOr(mask, uv0); - int2 r4 = WaveMaskBitAnd(mask, uv0); + int2 r2 = int2(WaveMaskBitXor(mask, uv0)); + int2 r3 = int2(WaveMaskBitOr(mask, uv0)); + int2 r4 = int2(WaveMaskBitAnd(mask, uv0)); int2 r = r0 + int2(r1) + r2 + r3 + r4; diff --git a/tests/hlsl-intrinsic/wave-mask/wave.slang b/tests/hlsl-intrinsic/wave-mask/wave.slang index 4e2534cb6..70860483f 100644 --- a/tests/hlsl-intrinsic/wave-mask/wave.slang +++ b/tests/hlsl-intrinsic/wave-mask/wave.slang @@ -57,7 +57,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) WaveMask waveMask = ~WaveMask(0); int index = int(dispatchThreadID.x); - const int waveLaneId = WaveGetLaneIndex(); + const int waveLaneId = int(WaveGetLaneIndex()); const int value = inputBuffer[index]; const int elementCount = 9; diff --git a/tests/hlsl-intrinsic/wave-matrix.slang b/tests/hlsl-intrinsic/wave-matrix.slang index da6665eb6..c4fe635be 100644 --- a/tests/hlsl-intrinsic/wave-matrix.slang +++ b/tests/hlsl-intrinsic/wave-matrix.slang @@ -30,7 +30,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) matrix r4 = WaveActiveBitAnd(uv0); matrix r5 = r2 + r3 + r4; - matrix r6 = matrix(r5[0][0], r5[0][1], r5[1][0], r5[1][1]); + matrix r6 = matrix(int(r5[0][0]), int(r5[0][1]), int(r5[1][0]), int(r5[1][1])); matrix r = r0 + matrix(r1) + r6; diff --git a/tests/hlsl-intrinsic/wave-prefix-count-bits.slang b/tests/hlsl-intrinsic/wave-prefix-count-bits.slang index b0e2464de..e16a8428b 100644 --- a/tests/hlsl-intrinsic/wave-prefix-count-bits.slang +++ b/tests/hlsl-intrinsic/wave-prefix-count-bits.slang @@ -13,5 +13,5 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { int idx = int(dispatchThreadID.x); - outputBuffer[idx] = WavePrefixCountBits(idx & 5); + outputBuffer[idx] = int(WavePrefixCountBits(bool(idx & 5))); } \ No newline at end of file diff --git a/tests/hlsl-intrinsic/wave-vector.slang b/tests/hlsl-intrinsic/wave-vector.slang index cc39c7767..7721c93f0 100644 --- a/tests/hlsl-intrinsic/wave-vector.slang +++ b/tests/hlsl-intrinsic/wave-vector.slang @@ -20,9 +20,9 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) int2 r0 = WaveActiveSum(v0); float2 r1 = WaveActiveSum(v1); - int2 r2 = WaveActiveBitXor(uv0); - int2 r3 = WaveActiveBitOr(uv0); - int2 r4 = WaveActiveBitAnd(uv0); + int2 r2 = int2(WaveActiveBitXor(uv0)); + int2 r3 = int2(WaveActiveBitOr(uv0)); + int2 r4 = int2(WaveActiveBitAnd(uv0)); int2 r = r0 + int2(r1) + r2 + r3 + r4; diff --git a/tests/hlsl/simple/rw-texture.hlsl b/tests/hlsl/simple/rw-texture.hlsl index de8e82777..114d9e126 100644 --- a/tests/hlsl/simple/rw-texture.hlsl +++ b/tests/hlsl/simple/rw-texture.hlsl @@ -38,7 +38,7 @@ RWTexture3D t3 R(u3); float4 main() : SV_Target { - return t2.Load(CBUFFER_REF(C,u2)) - + t2a.Load(CBUFFER_REF(C,u3)) - + t3.Load(CBUFFER_REF(C,u3)); + return t2.Load(int2(CBUFFER_REF(C,u2))) + + t2a.Load(int3(CBUFFER_REF(C,u3))) + + t3.Load(int3(CBUFFER_REF(C,u3))); } diff --git a/tests/ir/scalar-truncate.slang b/tests/ir/scalar-truncate.slang index 9d9d33261..ca1c5243c 100644 --- a/tests/ir/scalar-truncate.slang +++ b/tests/ir/scalar-truncate.slang @@ -9,7 +9,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { { int16_t a = 30000; // 0x00007530 -> 0x7530 (30000) in 16-bit. - int16_t b = -200000; // 0xfffcf2c0 -> Truncated to 0xf2c0 (-3392) in 16-bit. + int16_t b = int16_t(-200000); // 0xfffcf2c0 -> Truncated to 0xf2c0 (-3392) in 16-bit. outputBuffer[0] = asuint((int)a); outputBuffer[1] = asuint((int)b); } diff --git a/tests/language-feature/bit-cast/struct-bit-cast.slang b/tests/language-feature/bit-cast/struct-bit-cast.slang index 9c4a039c0..5398f36c9 100644 --- a/tests/language-feature/bit-cast/struct-bit-cast.slang +++ b/tests/language-feature/bit-cast/struct-bit-cast.slang @@ -32,7 +32,7 @@ int test0(int val) b.i.s = asuint(1.25); b.t = asuint(0.25); Foo f = bit_cast(b); - return f.a + (int)f.b + int(float(f.fvec.x / f.fvec.y)); // val + 2 + 5 + return int(f.a) + (int)f.b + int(float(f.fvec.x / f.fvec.y)); // val + 2 + 5 } struct Smaller @@ -59,9 +59,9 @@ int test1() RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test0(inVal) + test1(); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/constants/static-const-in-struct.slang b/tests/language-feature/constants/static-const-in-struct.slang index bee8c936b..5d4ce6802 100644 --- a/tests/language-feature/constants/static-const-in-struct.slang +++ b/tests/language-feature/constants/static-const-in-struct.slang @@ -50,9 +50,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/enums/enum-equality.slang b/tests/language-feature/enums/enum-equality.slang index d3a2aa4fd..278b26a65 100644 --- a/tests/language-feature/enums/enum-equality.slang +++ b/tests/language-feature/enums/enum-equality.slang @@ -31,9 +31,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/enums/nested-enum.slang b/tests/language-feature/enums/nested-enum.slang index ecc854440..5b45abae7 100644 --- a/tests/language-feature/enums/nested-enum.slang +++ b/tests/language-feature/enums/nested-enum.slang @@ -66,7 +66,7 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int value = (Outer::someValue) + 1 + Outer::getHeuristicResult(); Outer::Channel anotherValue = (Outer::Channel) +1; @@ -77,7 +77,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) // Check can see this is a cast value += (Outer::SomeType)(value); - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal) + value * 2 + int(anotherValue) * 4; outputBuffer[tid] = outVal; diff --git a/tests/language-feature/extensions/interface-extension.slang b/tests/language-feature/extensions/interface-extension.slang index e8c0552c0..1d84ba844 100644 --- a/tests/language-feature/extensions/interface-extension.slang +++ b/tests/language-feature/extensions/interface-extension.slang @@ -41,9 +41,9 @@ int test(int value) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/generics/struct-generic-value-param.slang b/tests/language-feature/generics/struct-generic-value-param.slang index 435e374d8..7b3b847d5 100644 --- a/tests/language-feature/generics/struct-generic-value-param.slang +++ b/tests/language-feature/generics/struct-generic-value-param.slang @@ -54,9 +54,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/inheritance/derived-struct-init-list.slang b/tests/language-feature/inheritance/derived-struct-init-list.slang index edcb685e6..978fea904 100644 --- a/tests/language-feature/inheritance/derived-struct-init-list.slang +++ b/tests/language-feature/inheritance/derived-struct-init-list.slang @@ -33,9 +33,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/inheritance/struct-inherit-interface-requirement.slang b/tests/language-feature/inheritance/struct-inherit-interface-requirement.slang index 968a78cb6..fbf3405ff 100644 --- a/tests/language-feature/inheritance/struct-inherit-interface-requirement.slang +++ b/tests/language-feature/inheritance/struct-inherit-interface-requirement.slang @@ -60,9 +60,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/inheritance/struct-inheritance-import.slang b/tests/language-feature/inheritance/struct-inheritance-import.slang index 0ea49957e..218d4d09d 100644 --- a/tests/language-feature/inheritance/struct-inheritance-import.slang +++ b/tests/language-feature/inheritance/struct-inheritance-import.slang @@ -22,7 +22,7 @@ RWStructuredBuffer outputBuffer; void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { uint tid = dispatchThreadID.x; - int inVal = tid; + int inVal = int(tid); int outVal = test(inVal); outputBuffer[tid] = outVal; } diff --git a/tests/language-feature/inheritance/struct-inheritance.slang b/tests/language-feature/inheritance/struct-inheritance.slang index 34ce55344..e50b1268b 100644 --- a/tests/language-feature/inheritance/struct-inheritance.slang +++ b/tests/language-feature/inheritance/struct-inheritance.slang @@ -49,9 +49,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/initializer-lists/default-init-16bit-types.slang b/tests/language-feature/initializer-lists/default-init-16bit-types.slang index 09da165f9..9620534e2 100644 --- a/tests/language-feature/initializer-lists/default-init-16bit-types.slang +++ b/tests/language-feature/initializer-lists/default-init-16bit-types.slang @@ -26,9 +26,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/interfaces/interface-conjunction.slang b/tests/language-feature/interfaces/interface-conjunction.slang index b5ec708a5..dbb573431 100644 --- a/tests/language-feature/interfaces/interface-conjunction.slang +++ b/tests/language-feature/interfaces/interface-conjunction.slang @@ -40,9 +40,9 @@ int test(int value) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/namespaces/multiple-namespace.slang b/tests/language-feature/namespaces/multiple-namespace.slang index a687d5e79..f8ad2eda0 100644 --- a/tests/language-feature/namespaces/multiple-namespace.slang +++ b/tests/language-feature/namespaces/multiple-namespace.slang @@ -47,9 +47,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/namespaces/simple-namespace.slang b/tests/language-feature/namespaces/simple-namespace.slang index e964cfca9..2066d2b7c 100644 --- a/tests/language-feature/namespaces/simple-namespace.slang +++ b/tests/language-feature/namespaces/simple-namespace.slang @@ -56,9 +56,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/namespaces/using-namespace.slang b/tests/language-feature/namespaces/using-namespace.slang index 3c40b4ba3..d55816570 100644 --- a/tests/language-feature/namespaces/using-namespace.slang +++ b/tests/language-feature/namespaces/using-namespace.slang @@ -37,9 +37,9 @@ int test(int value) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/properties/property-decl.slang b/tests/language-feature/properties/property-decl.slang index 94ab39d00..ac0cee666 100644 --- a/tests/language-feature/properties/property-decl.slang +++ b/tests/language-feature/properties/property-decl.slang @@ -38,9 +38,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/shader-params/entry-point-uniform-params.slang b/tests/language-feature/shader-params/entry-point-uniform-params.slang index 5b0279bb5..7053dd316 100644 --- a/tests/language-feature/shader-params/entry-point-uniform-params.slang +++ b/tests/language-feature/shader-params/entry-point-uniform-params.slang @@ -29,9 +29,9 @@ void computeMain( //TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out,name=outputBuffer uniform RWStructuredBuffer outputBuffer, - uint3 dispatchThreadID : SV_DispatchThreadID) + int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal, d.a, d.b); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/shader-params/interface-shader-param-ordinary.slang b/tests/language-feature/shader-params/interface-shader-param-ordinary.slang index 8d475254f..5ce346956 100644 --- a/tests/language-feature/shader-params/interface-shader-param-ordinary.slang +++ b/tests/language-feature/shader-params/interface-shader-param-ordinary.slang @@ -31,7 +31,7 @@ int test(int val) [numthreads(4, 1, 1)] void computeMain( - uint3 dispatchThreadID : SV_DispatchThreadID) + int3 dispatchThreadID : SV_DispatchThreadID) { let tid = dispatchThreadID.x; diff --git a/tests/language-feature/swizzles/matrix-swizzles.slang b/tests/language-feature/swizzles/matrix-swizzles.slang index 3f8fece74..fb9f9238f 100644 --- a/tests/language-feature/swizzles/matrix-swizzles.slang +++ b/tests/language-feature/swizzles/matrix-swizzles.slang @@ -17,7 +17,7 @@ int test(int val) tempVector2 = worldMatrix._12_21; // return tempMatrix[0][0] + tempMatrix[0][1] = val + 0 + val + 1 - return tempVector1.x + tempVector2.x; + return int(tempVector1.x + tempVector2.x); } @@ -25,9 +25,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/language-feature/types/opaque/inout-param-opaque-type-in-struct.slang b/tests/language-feature/types/opaque/inout-param-opaque-type-in-struct.slang index ea94e6ffa..c328d4c44 100644 --- a/tests/language-feature/types/opaque/inout-param-opaque-type-in-struct.slang +++ b/tests/language-feature/types/opaque/inout-param-opaque-type-in-struct.slang @@ -46,9 +46,9 @@ int test(int val) RWStructuredBuffer gOutput; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); gOutput[tid] = outVal; diff --git a/tests/language-feature/types/opaque/inout-param-opaque-type.slang b/tests/language-feature/types/opaque/inout-param-opaque-type.slang index 682f89fd0..83c20d040 100644 --- a/tests/language-feature/types/opaque/inout-param-opaque-type.slang +++ b/tests/language-feature/types/opaque/inout-param-opaque-type.slang @@ -33,9 +33,9 @@ int test(int val) RWStructuredBuffer gOutput; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); gOutput[tid] = outVal; diff --git a/tests/language-feature/types/opaque/out-param-opaque-type-in-struct.slang b/tests/language-feature/types/opaque/out-param-opaque-type-in-struct.slang index a6c645c01..60f9a95f5 100644 --- a/tests/language-feature/types/opaque/out-param-opaque-type-in-struct.slang +++ b/tests/language-feature/types/opaque/out-param-opaque-type-in-struct.slang @@ -30,9 +30,9 @@ int test(int val) RWStructuredBuffer gOutput; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); gOutput[tid] = outVal; diff --git a/tests/language-feature/types/opaque/out-param-opaque-type.slang b/tests/language-feature/types/opaque/out-param-opaque-type.slang index 3ac7c0d6f..03f105da2 100644 --- a/tests/language-feature/types/opaque/out-param-opaque-type.slang +++ b/tests/language-feature/types/opaque/out-param-opaque-type.slang @@ -24,9 +24,9 @@ int test(int val) RWStructuredBuffer gOutput; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); gOutput[tid] = outVal; diff --git a/tests/language-feature/types/opaque/return-opaque-type-in-struct.slang b/tests/language-feature/types/opaque/return-opaque-type-in-struct.slang index 2687af1c3..4da6b3b30 100644 --- a/tests/language-feature/types/opaque/return-opaque-type-in-struct.slang +++ b/tests/language-feature/types/opaque/return-opaque-type-in-struct.slang @@ -29,9 +29,9 @@ int test(int val) RWStructuredBuffer gOutput; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); gOutput[tid] = outVal; diff --git a/tests/language-feature/types/opaque/return-opaque-type.slang b/tests/language-feature/types/opaque/return-opaque-type.slang index 83d4376ba..e14ff8616 100644 --- a/tests/language-feature/types/opaque/return-opaque-type.slang +++ b/tests/language-feature/types/opaque/return-opaque-type.slang @@ -23,9 +23,9 @@ int test(int val) RWStructuredBuffer gOutput; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); gOutput[tid] = outVal; diff --git a/tests/nv-extensions/nv-ray-tracing-motion-blur.slang b/tests/nv-extensions/nv-ray-tracing-motion-blur.slang index 2c31da99a..6c3a7e8c1 100644 --- a/tests/nv-extensions/nv-ray-tracing-motion-blur.slang +++ b/tests/nv-extensions/nv-ray-tracing-motion-blur.slang @@ -37,8 +37,8 @@ struct ReflectionRay void main() { - int2 launchID = DispatchRaysIndex().xy; - int2 launchSize = DispatchRaysDimensions().xy; + int2 launchID = int2(DispatchRaysIndex().xy); + int2 launchSize = int2(DispatchRaysDimensions().xy); float2 inUV = float2( (float(launchID.x) + 0.5f) / float(launchSize.x), diff --git a/tests/optimization/func-resource-result/func-resource-result-complex.slang b/tests/optimization/func-resource-result/func-resource-result-complex.slang index a5585ff4c..a08874142 100644 --- a/tests/optimization/func-resource-result/func-resource-result-complex.slang +++ b/tests/optimization/func-resource-result/func-resource-result-complex.slang @@ -36,9 +36,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/optimization/func-resource-result/func-resource-result-simple.slang b/tests/optimization/func-resource-result/func-resource-result-simple.slang index 52b382135..7d82a2c68 100644 --- a/tests/optimization/func-resource-result/func-resource-result-simple.slang +++ b/tests/optimization/func-resource-result/func-resource-result-simple.slang @@ -22,9 +22,9 @@ int test(int val) RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int inVal = tid; int outVal = test(inVal); outputBuffer[tid] = outVal; diff --git a/tests/pipeline/compute/compute-system-values.slang b/tests/pipeline/compute/compute-system-values.slang index c63ca7f6b..a71bc0651 100644 --- a/tests/pipeline/compute/compute-system-values.slang +++ b/tests/pipeline/compute/compute-system-values.slang @@ -19,10 +19,10 @@ void computeMain( value = value*16 + groupIndex; value = value*16 + groupID.x; value = value*16 + groupID.y; - value = value*16 + groupThreadID.x; - value = value*16 + groupThreadID.y; - value = value*16 + dispatchThreadID.x; - value = value*16 + dispatchThreadID.y; + value = value*16 + int(groupThreadID.x); + value = value*16 + int(groupThreadID.y); + value = value*16 + int(dispatchThreadID.x); + value = value*16 + int(dispatchThreadID.y); outputBuffer[tid] = value; } \ No newline at end of file diff --git a/tests/pipeline/rasterization/fragment-shader-interlock.slang b/tests/pipeline/rasterization/fragment-shader-interlock.slang index 66597a9a8..7215629a2 100644 --- a/tests/pipeline/rasterization/fragment-shader-interlock.slang +++ b/tests/pipeline/rasterization/fragment-shader-interlock.slang @@ -13,8 +13,8 @@ void main( { beginInvocationInterlock(); - result = texture[coords.xy]; - texture[coords.xy] = result + coords; + result = texture[uint2(coords.xy)]; + texture[uint2(coords.xy)] = result + coords; endInvocationInterlock(); } diff --git a/tests/pipeline/ray-tracing/trace-ray-inline.slang b/tests/pipeline/ray-tracing/trace-ray-inline.slang index 6bbc776c5..d44500e18 100644 --- a/tests/pipeline/ray-tracing/trace-ray-inline.slang +++ b/tests/pipeline/ray-tracing/trace-ray-inline.slang @@ -132,7 +132,7 @@ void main(uint3 tid : SV_DispatchThreadID) { query.CommitProceduralPrimitiveHit(tHit); committedProceduralAttrs = candidateProceduralAttrs; - if(shouldStopAtFirstHit) + if(shouldStopAtFirstHit != 0) query.Abort(); } } @@ -144,7 +144,7 @@ void main(uint3 tid : SV_DispatchThreadID) if(myTriangleAnyHit(payload)) { query.CommitNonOpaqueTriangleHit(); - if(shouldStopAtFirstHit) + if(shouldStopAtFirstHit != 0) query.Abort(); } } diff --git a/tests/reflection/unbounded-arrays.hlsl b/tests/reflection/unbounded-arrays.hlsl index 603bb6071..8f91919d4 100644 --- a/tests/reflection/unbounded-arrays.hlsl +++ b/tests/reflection/unbounded-arrays.hlsl @@ -137,7 +137,7 @@ [numthreads(4,1,1)] void main(uint3 tid : SV_DispatchThreadID) { - int idx = tid.x; + int idx = int(tid.x); float4 tmp = data[idx]; SamplerState s = aa[idx]; diff --git a/tests/slang-extension/atomic-float-byte-address-buffer-cross.slang b/tests/slang-extension/atomic-float-byte-address-buffer-cross.slang index 584dcada1..ffa6d5b94 100644 --- a/tests/slang-extension/atomic-float-byte-address-buffer-cross.slang +++ b/tests/slang-extension/atomic-float-byte-address-buffer-cross.slang @@ -14,7 +14,7 @@ RWStructuredBuffer anotherBuffer; void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { uint tid = dispatchThreadID.x; - int idx = (tid & 3) ^ (tid >> 2); + int idx = int((tid & 3) ^ (tid >> 2)); const float delta = anotherBuffer[idx & 3]; @@ -22,6 +22,6 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) outputBuffer.InterlockedAddF32((idx << 2), 1.0f, previousValue); // The sum of values in anotherBuffer should also be added - int anotherIdx = tid >> 2; + int anotherIdx = int(tid >> 2); outputBuffer.InterlockedAddF32(anotherIdx << 2, delta); } \ No newline at end of file diff --git a/tests/slang-extension/atomic-float-byte-address-buffer.slang b/tests/slang-extension/atomic-float-byte-address-buffer.slang index 519cb668d..48e209431 100644 --- a/tests/slang-extension/atomic-float-byte-address-buffer.slang +++ b/tests/slang-extension/atomic-float-byte-address-buffer.slang @@ -25,7 +25,7 @@ RWStructuredBuffer anotherBuffer; void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { uint tid = dispatchThreadID.x; - int idx = (tid & 3) ^ (tid >> 2); + int idx = int((tid & 3) ^ (tid >> 2)); //const float delta = anotherBuffer[idx & 3]; @@ -41,6 +41,6 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) if (tid < 4) { - outputBuffer[tid] = asfloat(workBuffer.Load(tid << 2)); + outputBuffer[tid] = asfloat(workBuffer.Load(int(tid << 2))); } } \ No newline at end of file diff --git a/tests/slang-extension/atomic-int64-byte-address-buffer.slang b/tests/slang-extension/atomic-int64-byte-address-buffer.slang index b5e52ea58..9a7ae3b61 100644 --- a/tests/slang-extension/atomic-int64-byte-address-buffer.slang +++ b/tests/slang-extension/atomic-int64-byte-address-buffer.slang @@ -18,9 +18,9 @@ RWStructuredBuffer nvapiBuffer; RWByteAddressBuffer outputBuffer; [numthreads(16, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int idx = (tid & 3) ^ (tid >> 2); int64_t previousValue = 0; diff --git a/tests/slang-extension/atomic-min-max-u64-byte-address-buffer.slang b/tests/slang-extension/atomic-min-max-u64-byte-address-buffer.slang index 862dd4ad1..4ab67df8e 100644 --- a/tests/slang-extension/atomic-min-max-u64-byte-address-buffer.slang +++ b/tests/slang-extension/atomic-min-max-u64-byte-address-buffer.slang @@ -23,9 +23,9 @@ RWByteAddressBuffer outputBuffer; RWStructuredBuffer inputBuffer; [numthreads(16, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; // Produces a different result on CUDA? @@ -38,7 +38,7 @@ void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) { int idx = (tid & 3) ^ (tid >> 2); - if (idx & 1) + if (bool(idx & 1)) { outputBuffer.InterlockedMaxU64((idx << 3), value); } diff --git a/tests/slang-extension/cas-int64-byte-address-buffer.slang b/tests/slang-extension/cas-int64-byte-address-buffer.slang index 2712cbbe3..873f6ab4b 100644 --- a/tests/slang-extension/cas-int64-byte-address-buffer.slang +++ b/tests/slang-extension/cas-int64-byte-address-buffer.slang @@ -18,9 +18,9 @@ RWStructuredBuffer nvapiBuffer; RWByteAddressBuffer outputBuffer; [numthreads(16, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { - uint tid = dispatchThreadID.x; + int tid = dispatchThreadID.x; int idx = (tid & 3) ^ (tid >> 2); // Try directly reading diff --git a/tests/slang-extension/exchange-int64-byte-address-buffer.slang b/tests/slang-extension/exchange-int64-byte-address-buffer.slang index a15a487d1..84654ab80 100644 --- a/tests/slang-extension/exchange-int64-byte-address-buffer.slang +++ b/tests/slang-extension/exchange-int64-byte-address-buffer.slang @@ -20,7 +20,7 @@ RWByteAddressBuffer outputBuffer; // With only 4 threads there is no contention - which makes for a simple test // but doesn't actually test for the exchange atomicity [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int idx = dispatchThreadID.x; diff --git a/tests/type/texture-sampler/texture-sampler-2d.slang b/tests/type/texture-sampler/texture-sampler-2d.slang index 146fd0fd8..db4e82c23 100644 --- a/tests/type/texture-sampler/texture-sampler-2d.slang +++ b/tests/type/texture-sampler/texture-sampler-2d.slang @@ -7,7 +7,7 @@ Sampler2D t2D; RWStructuredBuffer outputBuffer; [numthreads(4, 1, 1)] -void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) +void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) { int idx = dispatchThreadID.x; float u = idx * (1.0f / 4); diff --git a/tests/vkray/anyhit.slang b/tests/vkray/anyhit.slang index 1c216b683..515c66f14 100644 --- a/tests/vkray/anyhit.slang +++ b/tests/vkray/anyhit.slang @@ -30,7 +30,7 @@ void main( SphereHitAttributes attributes, in out ShadowRay ioPayload) { - if(gParams.mode) + if(gParams.mode != 0) { float val = gParams.alphaMap.SampleLevel( gParams.sampler, diff --git a/tests/vkray/anyhit.slang.glsl b/tests/vkray/anyhit.slang.glsl index 6205d7a9b..eb39299c5 100644 --- a/tests/vkray/anyhit.slang.glsl +++ b/tests/vkray/anyhit.slang.glsl @@ -42,7 +42,7 @@ rayPayloadInEXT ShadowRay_0 _S3; void main() { - if(bool(gParams_0._data.mode_0)) + if(gParams_0._data.mode_0 != 0) { float val_0 = textureLod( sampler2D(gParams_alphaMap_0, gParams_sampler_0), -- cgit v1.2.3