Skip to content

Commit 3178ffb

Browse files
authored
Fix hlsl image type conversion (#6123)
1 parent 4c83508 commit 3178ffb

File tree

4 files changed

+14
-21
lines changed

4 files changed

+14
-21
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ By @wumpf in [#6069](https://github.com/gfx-rs/wgpu/pull/6069), [#6099](https://
6363

6464
### Bug Fixes
6565

66+
- Fix incorrect hlsl image output type conversion. By @atlv24 in [#6123](https://github.com/gfx-rs/wgpu/pull/6123)
67+
6668
#### General
6769

6870
- If GL context creation fails retry with GLES. By @Rapdorian in [#5996](https://github.com/gfx-rs/wgpu/pull/5996)

naga/src/back/hlsl/conv.rs

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -119,38 +119,29 @@ impl crate::TypeInner {
119119
impl crate::StorageFormat {
120120
pub(super) const fn to_hlsl_str(self) -> &'static str {
121121
match self {
122-
Self::R16Float => "float",
122+
Self::R16Float | Self::R32Float => "float",
123123
Self::R8Unorm | Self::R16Unorm => "unorm float",
124124
Self::R8Snorm | Self::R16Snorm => "snorm float",
125-
Self::R8Uint | Self::R16Uint => "uint",
126-
Self::R8Sint | Self::R16Sint => "int",
125+
Self::R8Uint | Self::R16Uint | Self::R32Uint => "uint",
126+
Self::R8Sint | Self::R16Sint | Self::R32Sint => "int",
127127

128-
Self::Rg16Float => "float2",
128+
Self::Rg16Float | Self::Rg32Float => "float2",
129129
Self::Rg8Unorm | Self::Rg16Unorm => "unorm float2",
130130
Self::Rg8Snorm | Self::Rg16Snorm => "snorm float2",
131131

132-
Self::Rg8Sint | Self::Rg16Sint => "int2",
133-
Self::Rg8Uint | Self::Rg16Uint => "uint2",
132+
Self::Rg8Sint | Self::Rg16Sint | Self::Rg32Uint => "int2",
133+
Self::Rg8Uint | Self::Rg16Uint | Self::Rg32Sint => "uint2",
134134

135135
Self::Rg11b10UFloat => "float3",
136136

137-
Self::Rgba16Float | Self::R32Float | Self::Rg32Float | Self::Rgba32Float => "float4",
137+
Self::Rgba16Float | Self::Rgba32Float => "float4",
138138
Self::Rgba8Unorm | Self::Bgra8Unorm | Self::Rgba16Unorm | Self::Rgb10a2Unorm => {
139139
"unorm float4"
140140
}
141141
Self::Rgba8Snorm | Self::Rgba16Snorm => "snorm float4",
142142

143-
Self::Rgba8Uint
144-
| Self::Rgba16Uint
145-
| Self::R32Uint
146-
| Self::Rg32Uint
147-
| Self::Rgba32Uint
148-
| Self::Rgb10a2Uint => "uint4",
149-
Self::Rgba8Sint
150-
| Self::Rgba16Sint
151-
| Self::R32Sint
152-
| Self::Rg32Sint
153-
| Self::Rgba32Sint => "int4",
143+
Self::Rgba8Uint | Self::Rgba16Uint | Self::Rgba32Uint | Self::Rgb10a2Uint => "uint4",
144+
Self::Rgba8Sint | Self::Rgba16Sint | Self::Rgba32Sint => "int4",
154145
}
155146
}
156147
}

naga/tests/out/hlsl/image.hlsl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ Texture2DMS<uint4> image_multisampled_src : register(t3);
33
Texture2DMS<float> image_depth_multisampled_src : register(t4);
44
RWTexture2D<uint4> image_storage_src : register(u1);
55
Texture2DArray<uint4> image_array_src : register(t5);
6-
RWTexture1D<uint4> image_dup_src : register(u6);
6+
RWTexture1D<uint> image_dup_src : register(u6);
77
Texture1D<uint4> image_1d_src : register(t7);
8-
RWTexture1D<uint4> image_dst : register(u2);
8+
RWTexture1D<uint> image_dst : register(u2);
99
Texture1D<float4> image_1d : register(t0);
1010
Texture2D<float4> image_2d : register(t1);
1111
Texture2D<uint4> image_2d_u32_ : register(t2);

wgpu-types/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3384,7 +3384,7 @@ impl TextureFormat {
33843384
Self::Bgra8UnormSrgb => (msaa_resolve, attachment),
33853385
Self::Rgb10a2Uint => ( msaa, attachment),
33863386
Self::Rgb10a2Unorm => (msaa_resolve, attachment),
3387-
Self::Rg11b10UFloat => ( msaa, rg11b10f),
3387+
Self::Rg11b10UFloat => ( msaa, rg11b10f),
33883388
Self::Rg32Uint => ( noaa, all_flags),
33893389
Self::Rg32Sint => ( noaa, all_flags),
33903390
Self::Rg32Float => ( noaa, all_flags),

0 commit comments

Comments
 (0)