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/slang-extension/atomic-float-byte-address-buffer-cross.slang | 4 ++-- tests/slang-extension/atomic-float-byte-address-buffer.slang | 4 ++-- tests/slang-extension/atomic-int64-byte-address-buffer.slang | 4 ++-- tests/slang-extension/atomic-min-max-u64-byte-address-buffer.slang | 6 +++--- tests/slang-extension/cas-int64-byte-address-buffer.slang | 4 ++-- tests/slang-extension/exchange-int64-byte-address-buffer.slang | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) (limited to 'tests/slang-extension') 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; -- cgit v1.2.3