[GPU] Simplify local X offsetting with resolution scaling

Switch between even and odd 16-byte element sequences along X by simply
flipping a bit rather than going to a different resolution-scaled group of
pixels, by increasing the size of the group within the constraints imposed
by tiling.
This commit is contained in:
Triang3l
2026-01-13 23:14:15 +03:00
parent 76c531bff2
commit 0f23f05683
169 changed files with 61380 additions and 64785 deletions

View File

@@ -35,16 +35,15 @@ entry_inputs_end_code_begin_compute_xe
load_info.size_blocks.y, 16u) +
load_info.host_offset) >> 4u);
uint block_offset_guest =
XeTextureLoadGuestBlockOffset(load_info, block_index, 16u, 4u) >> 4u;
XeTextureLoadSourceAddress(load_info, block_index, 4u) >> 4u;
array_buffer_store_xe(
xe_texture_load_dest, block_offset_host,
XeEndianSwap32(array_buffer_load_xe(xe_texture_load_source,
block_offset_guest),
load_info.endian_32));
++block_offset_host;
block_offset_guest +=
XeTextureLoadRightConsecutiveBlocksOffset(load_info, block_index.x, 4u) >>
4u;
block_offset_guest ^=
XeTextureLoadLocalXAddressXor(1u, 4u, load_info.is_tiled) >> 4u;
array_buffer_store_xe(
xe_texture_load_dest, block_offset_host,
XeEndianSwap32(array_buffer_load_xe(xe_texture_load_source,