From 2a7644980035bfda0aab00f183154ab7e976ba63 Mon Sep 17 00:00:00 2001 From: Tim Foley Date: Tue, 30 Oct 2018 09:05:40 -0700 Subject: Fix declarations of InterlockedMin/Max (#700) Fixed #699 These functions were declared with an `in out` parameter (copy in, copy out) where they should have used `__ref` (true by-reference parameter passing). --- source/slang/hlsl.meta.slang | 8 ++++---- source/slang/hlsl.meta.slang.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index b2b2c5fc5..fb03dfcfc 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -712,16 +712,16 @@ __target_intrinsic(glsl, "($2 = $atomicMax($A, $1))") void InterlockedMax(__ref uint dest, uint value, out uint original_value); __target_intrinsic(glsl, "$atomicMin($A, $1)") -void InterlockedMin(in out int dest, int value); +void InterlockedMin(__ref int dest, int value); __target_intrinsic(glsl, "$atomicMin($A, $1)") -void InterlockedMin(in out uint dest, uint value); +void InterlockedMin(__ref uint dest, uint value); __target_intrinsic(glsl, "($2 = $atomicMin($A, $1))") -void InterlockedMin(in out int dest, int value, out int original_value); +void InterlockedMin(__ref int dest, int value, out int original_value); __target_intrinsic(glsl, "($2 = $atomicMin($A, $1))") -void InterlockedMin(in out uint dest, uint value, out uint original_value); +void InterlockedMin(__ref uint dest, uint value, out uint original_value); __target_intrinsic(glsl, "$atomicOr($A, $1)") void InterlockedOr(__ref int dest, int value); diff --git a/source/slang/hlsl.meta.slang.h b/source/slang/hlsl.meta.slang.h index 073302b0b..e1e080d25 100644 --- a/source/slang/hlsl.meta.slang.h +++ b/source/slang/hlsl.meta.slang.h @@ -757,16 +757,16 @@ SLANG_RAW("__target_intrinsic(glsl, \"($2 = $atomicMax($A, $1))\")\n") SLANG_RAW("void InterlockedMax(__ref uint dest, uint value, out uint original_value);\n") SLANG_RAW("\n") SLANG_RAW("__target_intrinsic(glsl, \"$atomicMin($A, $1)\")\n") -SLANG_RAW("void InterlockedMin(in out int dest, int value);\n") +SLANG_RAW("void InterlockedMin(__ref int dest, int value);\n") SLANG_RAW("\n") SLANG_RAW("__target_intrinsic(glsl, \"$atomicMin($A, $1)\")\n") -SLANG_RAW("void InterlockedMin(in out uint dest, uint value);\n") +SLANG_RAW("void InterlockedMin(__ref uint dest, uint value);\n") SLANG_RAW("\n") SLANG_RAW("__target_intrinsic(glsl, \"($2 = $atomicMin($A, $1))\")\n") -SLANG_RAW("void InterlockedMin(in out int dest, int value, out int original_value);\n") +SLANG_RAW("void InterlockedMin(__ref int dest, int value, out int original_value);\n") SLANG_RAW("\n") SLANG_RAW("__target_intrinsic(glsl, \"($2 = $atomicMin($A, $1))\")\n") -SLANG_RAW("void InterlockedMin(in out uint dest, uint value, out uint original_value);\n") +SLANG_RAW("void InterlockedMin(__ref uint dest, uint value, out uint original_value);\n") SLANG_RAW("\n") SLANG_RAW("__target_intrinsic(glsl, \"$atomicOr($A, $1)\")\n") SLANG_RAW("void InterlockedOr(__ref int dest, int value);\n") -- cgit v1.2.3