[GPU] Prevent multiple evaluation of XE_TEXTURE_LOAD_TRANSFORM arguments
This commit is contained in:
@@ -56,12 +56,13 @@ xesl_entry_signature_end
|
||||
XE_TEXTURE_LOAD_DXT3A_AS_1_1_1_1_TO_16BPP(blocks_23.xz));
|
||||
xesl_dont_flatten if (++texel_index_host.y < height_texels) {
|
||||
block_offset_host += elements_pitch_host;
|
||||
xesl_uint4 high_halfblocks = xesl_uint4(blocks_01.xz, blocks_23.xz) >> 16u;
|
||||
xesl_writeTypedStorageBufferStore(
|
||||
xe_texture_load_dest, block_offset_host,
|
||||
XE_TEXTURE_LOAD_DXT3A_AS_1_1_1_1_TO_16BPP(blocks_01.xz >> 16u));
|
||||
XE_TEXTURE_LOAD_DXT3A_AS_1_1_1_1_TO_16BPP(high_halfblocks.xy));
|
||||
xesl_writeTypedStorageBufferStore(
|
||||
xe_texture_load_dest, block_offset_host + 1u,
|
||||
XE_TEXTURE_LOAD_DXT3A_AS_1_1_1_1_TO_16BPP(blocks_23.xz >> 16u));
|
||||
XE_TEXTURE_LOAD_DXT3A_AS_1_1_1_1_TO_16BPP(high_halfblocks.zw));
|
||||
xesl_dont_flatten if (++texel_index_host.y < height_texels) {
|
||||
block_offset_host += elements_pitch_host;
|
||||
xesl_writeTypedStorageBufferStore(
|
||||
@@ -72,12 +73,13 @@ xesl_entry_signature_end
|
||||
XE_TEXTURE_LOAD_DXT3A_AS_1_1_1_1_TO_16BPP(blocks_23.yw));
|
||||
xesl_dont_flatten if (++texel_index_host.y < height_texels) {
|
||||
block_offset_host += elements_pitch_host;
|
||||
high_halfblocks = xesl_uint4(blocks_01.yw, blocks_23.yw) >> 16u;
|
||||
xesl_writeTypedStorageBufferStore(
|
||||
xe_texture_load_dest, block_offset_host,
|
||||
XE_TEXTURE_LOAD_DXT3A_AS_1_1_1_1_TO_16BPP(blocks_01.yw >> 16u));
|
||||
XE_TEXTURE_LOAD_DXT3A_AS_1_1_1_1_TO_16BPP(high_halfblocks.xy));
|
||||
xesl_writeTypedStorageBufferStore(
|
||||
xe_texture_load_dest, block_offset_host + 1u,
|
||||
XE_TEXTURE_LOAD_DXT3A_AS_1_1_1_1_TO_16BPP(blocks_23.yw >> 16u));
|
||||
XE_TEXTURE_LOAD_DXT3A_AS_1_1_1_1_TO_16BPP(high_halfblocks.zw));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user