From 6cbe215e58eeb8edc53d71e8f315e2fb55c0eeee Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 12 Dec 2023 16:29:51 -0800 Subject: Define `Texture::Sample` for float element types only. (#3403) * Define `Texture::Sample` for float element types only. * Fixes #490. * Fix checking of groupshared. * Add test. * Fix. --------- Co-authored-by: Yong He --- source/slang/hlsl.meta.slang | 69 +++++++++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 30 deletions(-) (limited to 'source/slang/hlsl.meta.slang') diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index 5bb5ce038..477e0cfaf 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -214,7 +214,26 @@ extension __TextureImpl }).y; } } + + __target_intrinsic(glsl, "texture($0, $1)") + float __glsl_texture(vector value); + __glsl_extension(GL_EXT_texture_shadow_lod) + __target_intrinsic(glsl, "textureOffset($0, $1, $2)") + float __glsl_texture_offset(vector value, constexpr vector offset); + + __glsl_extension(GL_EXT_texture_shadow_lod) + __target_intrinsic(glsl, "textureLod($0, $1, 0)") + float __glsl_texture_level_zero(vector value); + + __glsl_extension(GL_EXT_texture_shadow_lod) + __target_intrinsic(glsl, "textureLodOffset($0, $1, 0, $2)") + float __glsl_texture_offset_level_zero(vector value, constexpr vector offset); +} + +__generic +extension __TextureImpl +{ [__readNone] T Sample(vector location) { @@ -329,21 +348,6 @@ extension __TextureImpl } } - __target_intrinsic(glsl, "texture($0, $1)") - float __glsl_texture(vector value); - - __glsl_extension(GL_EXT_texture_shadow_lod) - __target_intrinsic(glsl, "textureOffset($0, $1, $2)") - float __glsl_texture_offset(vector value, constexpr vector offset); - - __glsl_extension(GL_EXT_texture_shadow_lod) - __target_intrinsic(glsl, "textureLod($0, $1, 0)") - float __glsl_texture_level_zero(vector value); - - __glsl_extension(GL_EXT_texture_shadow_lod) - __target_intrinsic(glsl, "textureLodOffset($0, $1, 0, $2)") - float __glsl_texture_offset_level_zero(vector value, constexpr vector offset); - [__readNone] [ForceInline] float SampleCmp(vector location, float compareValue) @@ -586,7 +590,27 @@ extension __TextureImpl value); + + __glsl_extension(GL_EXT_texture_shadow_lod) + __target_intrinsic(glsl, "textureOffset($p, $2, $3)") + float __glsl_texture_offset(SamplerComparisonState s, vector value, constexpr vector offset); + + __glsl_extension(GL_EXT_texture_shadow_lod) + __target_intrinsic(glsl, "textureLod($p, $2, 0)") + float __glsl_texture_level_zero(SamplerComparisonState s, vector value); + + __glsl_extension(GL_EXT_texture_shadow_lod) + __target_intrinsic(glsl, "textureLodOffset($p, $2, 0, $3)") + float __glsl_texture_offset_level_zero(SamplerComparisonState s, vector value, constexpr vector offset); + +} +__generic +extension __TextureImpl +{ [__readNone] T Sample(SamplerState s, vector location) { @@ -726,21 +750,6 @@ extension __TextureImpl value); - - __glsl_extension(GL_EXT_texture_shadow_lod) - __target_intrinsic(glsl, "textureOffset($p, $2, $3)") - float __glsl_texture_offset(SamplerComparisonState s, vector value, constexpr vector offset); - - __glsl_extension(GL_EXT_texture_shadow_lod) - __target_intrinsic(glsl, "textureLod($p, $2, 0)") - float __glsl_texture_level_zero(SamplerComparisonState s, vector value); - - __glsl_extension(GL_EXT_texture_shadow_lod) - __target_intrinsic(glsl, "textureLodOffset($p, $2, 0, $3)") - float __glsl_texture_offset_level_zero(SamplerComparisonState s, vector value, constexpr vector offset); - [__readNone] [ForceInline] float SampleCmp(SamplerComparisonState s, vector location, float compareValue) { -- cgit v1.2.3