diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_128bpb_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_128bpb_cs.cso index 7b59bc67f..53a51dcac 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_128bpb_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_128bpb_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_128bpb_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_128bpb_cs.h index d1d071432..f9740e7da 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_128bpb_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_128bpb_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_128bpb.cs.hlsl const uint8_t texture_load_128bpb_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0xE4, 0x19, 0xE2, 0x27, 0x5E, 0x18, 0x54, 0x11, - 0x34, 0x8A, 0x4C, 0xA9, 0x5C, 0xA3, 0x30, 0x51, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0x74, 0xB9, 0x4D, 0x1C, 0x2D, 0x5F, 0x4D, 0x37, + 0xE8, 0x97, 0x0A, 0xE3, 0x4A, 0x47, 0xF5, 0x08, 0x01, 0x00, 0x00, 0x00, 0xF8, 0x1A, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0x5C, 0x1A, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_128bpb_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_128bpb_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_128bpb_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_128bpb_cs.txt index 5e521d689..da415f59c 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_128bpb_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_128bpb_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 [unused] -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 [unused] +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 [unused] +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 [unused] // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_16bpb_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_16bpb_cs.cso index bbcb3c131..dc7814119 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_16bpb_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_16bpb_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_16bpb_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_16bpb_cs.h index fbf74c9e0..6fc770e40 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_16bpb_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_16bpb_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_16bpb.cs.hlsl const uint8_t texture_load_16bpb_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0x89, 0xC6, 0x55, 0x9A, 0xDD, 0x87, 0xBC, 0x04, - 0x9F, 0x66, 0x9D, 0xCB, 0xCA, 0xCA, 0xA6, 0x4C, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0xD5, 0x7A, 0x9A, 0xEE, 0x5E, 0xBE, 0xC1, 0xE4, + 0xBD, 0x30, 0xB7, 0x40, 0x73, 0x39, 0x56, 0xAB, 0x01, 0x00, 0x00, 0x00, 0xBC, 0x1B, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0x20, 0x1B, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_16bpb_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_16bpb_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_16bpb_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_16bpb_cs.txt index f59ccf048..3ac8afeaa 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_16bpb_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_16bpb_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 [unused] -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 [unused] +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_32bpb_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_32bpb_cs.cso index 866c43789..784b86174 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_32bpb_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_32bpb_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_32bpb_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_32bpb_cs.h index 759bb271b..87badfe0a 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_32bpb_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_32bpb_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_32bpb.cs.hlsl const uint8_t texture_load_32bpb_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0x8E, 0x21, 0xCF, 0x20, 0x7A, 0x93, 0xC9, 0x82, - 0x0F, 0xFC, 0xB7, 0x41, 0xE2, 0x59, 0x0C, 0x41, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0xE2, 0x96, 0x79, 0xB2, 0xCC, 0xD8, 0xCB, 0x6F, + 0xFF, 0x2D, 0x5A, 0xF4, 0xC8, 0xA0, 0x3E, 0x52, 0x01, 0x00, 0x00, 0x00, 0x7C, 0x18, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0xE0, 0x17, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_32bpb_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_32bpb_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_32bpb_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_32bpb_cs.txt index 875f1c7f0..ad2991f7f 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_32bpb_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_32bpb_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 [unused] -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 [unused] +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 [unused] +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 [unused] // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_64bpb_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_64bpb_cs.cso index a4746dd13..a1488b1f8 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_64bpb_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_64bpb_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_64bpb_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_64bpb_cs.h index 8e5cf99c5..1ddf6b0e4 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_64bpb_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_64bpb_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_64bpb.cs.hlsl const uint8_t texture_load_64bpb_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0x56, 0xB1, 0xBD, 0xAF, 0xC7, 0xA8, 0x08, 0x9A, - 0x2E, 0x1C, 0x7A, 0x33, 0xE6, 0x67, 0x13, 0x2C, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0xD7, 0x3B, 0xFC, 0xE7, 0x64, 0x87, 0xEF, 0xC3, + 0x18, 0xC8, 0x0D, 0x8C, 0x43, 0xDA, 0x47, 0xCE, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0x64, 0x19, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_64bpb_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_64bpb_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_64bpb_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_64bpb_cs.txt index 9ac423b1b..ccae122ff 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_64bpb_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_64bpb_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 [unused] -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 [unused] +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 [unused] +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 [unused] // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_8bpb_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_8bpb_cs.cso index de654ca61..d5065af78 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_8bpb_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_8bpb_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_8bpb_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_8bpb_cs.h index f4c7fc833..0a2e091a4 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_8bpb_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_8bpb_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_8bpb.cs.hlsl const uint8_t texture_load_8bpb_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0xDA, 0xF4, 0xB1, 0xBC, 0xDA, 0xB2, 0xE0, 0x8E, - 0x71, 0x24, 0x04, 0x16, 0xBC, 0x32, 0x0D, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0x09, 0xC6, 0xAE, 0x41, 0x7A, 0x26, 0x75, 0xA9, + 0xA8, 0x7B, 0x17, 0xAA, 0xD3, 0x38, 0x81, 0x22, 0x01, 0x00, 0x00, 0x00, 0x84, 0x17, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0xE8, 0x16, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_8bpb_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_8bpb_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_8bpb_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_8bpb_cs.txt index a2b8a18da..17297dd40 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_8bpb_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_8bpb_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 [unused] -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 [unused] -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 [unused] +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 [unused] +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 [unused] +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 [unused] // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_ctx1_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_ctx1_cs.cso index d8d7ea098..7732aa4e6 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_ctx1_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_ctx1_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_ctx1_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_ctx1_cs.h index 0b25a4658..5b239975c 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_ctx1_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_ctx1_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_ctx1.cs.hlsl const uint8_t texture_load_ctx1_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0x3D, 0x26, 0x8C, 0x76, 0x2A, 0xB0, 0xA4, 0x76, - 0xF6, 0x3A, 0x8A, 0x32, 0xD9, 0x2C, 0xD2, 0x06, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0xFB, 0xCF, 0xEB, 0xE6, 0xB4, 0xF9, 0xC2, 0x0D, + 0x65, 0x97, 0x43, 0xD2, 0xCE, 0xBC, 0x70, 0x93, 0x01, 0x00, 0x00, 0x00, 0xE8, 0x25, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0x4C, 0x25, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_ctx1_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_ctx1_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_ctx1_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_ctx1_cs.txt index 491c98eee..341af8a50 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_ctx1_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_ctx1_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 [unused] +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 [unused] // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_float_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_float_cs.cso index 043588c21..8a54222b6 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_float_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_float_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_float_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_float_cs.h index 5b6078e58..6978bde64 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_float_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_float_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_depth_float.cs.hlsl const uint8_t texture_load_depth_float_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0xB8, 0xCB, 0xA4, 0xC1, 0x10, 0x5C, 0xAF, 0x25, - 0x06, 0xC2, 0x99, 0xDD, 0x08, 0x83, 0x16, 0x52, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0x2D, 0x2F, 0x28, 0x85, 0x3A, 0x4D, 0x05, 0x45, + 0x52, 0x77, 0x1A, 0x20, 0x59, 0x6B, 0x54, 0x51, 0x01, 0x00, 0x00, 0x00, 0xF0, 0x1A, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0x54, 0x1A, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_depth_float_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_depth_float_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_float_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_float_cs.txt index 5b7f135f4..2a2a471f4 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_float_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_float_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 [unused] -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 [unused] +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 [unused] +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 [unused] // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.cso index dc953d8d5..569dbcd34 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.h index f77c33cbc..0d5981024 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_depth_unorm.cs.hlsl const uint8_t texture_load_depth_unorm_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0xAE, 0x52, 0xFE, 0xF6, 0x2A, 0x15, 0x3D, 0xD8, - 0xFA, 0x96, 0x9A, 0x21, 0xA8, 0x3B, 0x15, 0xFE, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0xE6, 0xD6, 0xF2, 0x1A, 0x99, 0x7A, 0x0D, 0x75, + 0x41, 0xC2, 0x4D, 0xC9, 0xEB, 0xE2, 0xD5, 0x3E, 0x01, 0x00, 0x00, 0x00, 0xE0, 0x18, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0x44, 0x18, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_depth_unorm_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_depth_unorm_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.txt index 4bf90b7df..8d557e05f 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 [unused] -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 [unused] +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 [unused] +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 [unused] // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxn_rg8_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxn_rg8_cs.cso index 8a36298aa..0c28c1a9c 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxn_rg8_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxn_rg8_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxn_rg8_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxn_rg8_cs.h index c091eaea6..a5a192484 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxn_rg8_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxn_rg8_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_dxn_rg8.cs.hlsl const uint8_t texture_load_dxn_rg8_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0xD3, 0x1E, 0x45, 0xAE, 0x0D, 0x68, 0xB8, 0x2E, - 0x0F, 0x79, 0x66, 0x73, 0x8C, 0x8C, 0x17, 0x10, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0xC2, 0x83, 0x22, 0xBA, 0xAB, 0xC3, 0xF2, 0x5C, + 0xC5, 0x0E, 0x8B, 0xB6, 0xA0, 0x0E, 0x44, 0x97, 0x01, 0x00, 0x00, 0x00, 0xCC, 0x45, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0x30, 0x45, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_dxn_rg8_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_dxn_rg8_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxn_rg8_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxn_rg8_cs.txt index c18a6e2b5..0973232ca 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxn_rg8_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxn_rg8_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 [unused] +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 [unused] // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.cso index e359d0366..38f413551 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.h index c9f9be77b..05edf09dd 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_dxt1_rgba8.cs.hlsl const uint8_t texture_load_dxt1_rgba8_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0x86, 0x9A, 0x6E, 0x53, 0x50, 0xC2, 0xAB, 0x8E, - 0x5D, 0x3E, 0x82, 0x32, 0x85, 0x11, 0x77, 0x34, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0x36, 0x75, 0xE9, 0xE6, 0x91, 0x19, 0xD0, 0x4E, + 0x6C, 0x4B, 0xAD, 0xFF, 0x6D, 0x63, 0xFA, 0x8E, 0x01, 0x00, 0x00, 0x00, 0x58, 0x3D, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0xBC, 0x3C, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_dxt1_rgba8_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_dxt1_rgba8_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.txt index f4e44bbb1..0119cd2a7 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 [unused] +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 [unused] // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3_rgba8_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3_rgba8_cs.cso index f67bbe596..f4787033f 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3_rgba8_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3_rgba8_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3_rgba8_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3_rgba8_cs.h index d21c1955b..2cb6b5f8e 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3_rgba8_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3_rgba8_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_dxt3_rgba8.cs.hlsl const uint8_t texture_load_dxt3_rgba8_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0x6B, 0xAA, 0x02, 0x6D, 0x5A, 0x1C, 0x08, 0x0F, - 0x6C, 0x17, 0xAB, 0x4B, 0x8E, 0x96, 0x96, 0xB1, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0xFA, 0xB3, 0xDA, 0xF9, 0x4F, 0xE7, 0x53, 0xBD, + 0xEF, 0x22, 0xC3, 0xE4, 0x64, 0xA6, 0xC0, 0x18, 0x01, 0x00, 0x00, 0x00, 0xFC, 0x33, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0x60, 0x33, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_dxt3_rgba8_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_dxt3_rgba8_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3_rgba8_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3_rgba8_cs.txt index 8decc86e2..395e98af2 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3_rgba8_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3_rgba8_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 [unused] +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 [unused] // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.cso index 706ed9aa8..3bd801a46 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.h index 3118c24de..f5e5b6f42 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_dxt3a.cs.hlsl const uint8_t texture_load_dxt3a_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0xB1, 0x37, 0x0C, 0x04, 0xF0, 0xE5, 0x3D, 0x43, - 0x7A, 0x02, 0x5E, 0x72, 0x7B, 0x90, 0xA2, 0xE6, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0x69, 0xAD, 0x36, 0x22, 0xDA, 0x10, 0x83, 0xA1, + 0xD3, 0x5F, 0x42, 0xE7, 0xDF, 0xF2, 0x32, 0x86, 0x01, 0x00, 0x00, 0x00, 0xC8, 0x1D, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0x2C, 0x1D, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_dxt3a_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_dxt3a_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.txt index b53c3f828..e35f612e3 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 [unused] +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 [unused] // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.cso index 1f56ee3ef..ed2beb79f 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.h index 3e73b5d8d..7bf7dbf6f 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_dxt5_rgba8.cs.hlsl const uint8_t texture_load_dxt5_rgba8_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0x90, 0xFF, 0x47, 0xFC, 0x92, 0x7D, 0xB5, 0xF0, - 0xA7, 0xF2, 0x36, 0x81, 0x44, 0xAC, 0xD7, 0xBD, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0xA3, 0xAF, 0xB8, 0x84, 0xC8, 0x4D, 0xC5, 0x90, + 0xE0, 0x06, 0x0A, 0x27, 0xC9, 0x24, 0x2D, 0x7F, 0x01, 0x00, 0x00, 0x00, 0xF4, 0x42, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0x58, 0x42, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_dxt5_rgba8_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_dxt5_rgba8_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.txt index f99d46e2b..d44228423 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 [unused] +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 [unused] // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5a_r8_cs.cso b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5a_r8_cs.cso index ed88c45d4..50125c08f 100644 Binary files a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5a_r8_cs.cso and b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5a_r8_cs.cso differ diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5a_r8_cs.h b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5a_r8_cs.h index 6e39fffe4..6145b134a 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5a_r8_cs.h +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5a_r8_cs.h @@ -1,8 +1,8 @@ // generated from `xb buildhlsl` // source: texture_load_dxt5a_r8.cs.hlsl const uint8_t texture_load_dxt5a_r8_cs[] = { - 0x44, 0x58, 0x42, 0x43, 0x0B, 0x90, 0x26, 0x57, 0x25, 0x8A, 0x94, 0xAA, - 0x42, 0xAE, 0x76, 0x70, 0x07, 0x8C, 0xC5, 0x67, 0x01, 0x00, 0x00, 0x00, + 0x44, 0x58, 0x42, 0x43, 0x5F, 0xE3, 0x1E, 0xF5, 0xBD, 0x5C, 0x74, 0xE4, + 0x19, 0x71, 0x96, 0xA5, 0xC2, 0xC1, 0x9C, 0x40, 0x01, 0x00, 0x00, 0x00, 0x80, 0x2D, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x9C, 0x04, 0x00, 0x00, 0xAC, 0x04, 0x00, 0x00, 0xBC, 0x04, 0x00, 0x00, 0xE4, 0x2C, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x60, 0x04, 0x00, 0x00, @@ -21,11 +21,11 @@ const uint8_t texture_load_dxt5a_r8_cs[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, - 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, - 0x70, 0x79, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6F, 0x70, 0x79, 0x43, 0x6F, 0x6E, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x6F, 0x75, 0x72, 0x63, 0x65, 0x00, 0x78, + 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, + 0x61, 0x64, 0x5F, 0x64, 0x65, 0x73, 0x74, 0x00, 0x58, 0x65, 0x54, 0x65, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x4C, 0x6F, 0x61, 0x64, 0x43, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x73, 0x00, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, @@ -62,39 +62,39 @@ const uint8_t texture_load_dxt5a_r8_cs[] = { 0x3C, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x64, 0x77, 0x6F, 0x72, 0x64, 0x00, 0xAB, 0xAB, 0xAB, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x02, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, 0x73, 0x74, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x62, 0x61, 0x73, 0x65, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x68, 0x6F, + 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x70, 0x69, 0x74, 0x63, 0x68, 0x00, 0x78, 0x65, 0x5F, - 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, + 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x65, 0x6C, 0x73, 0x00, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x00, 0xAB, 0x01, 0x00, 0x13, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x03, 0x00, 0x00, 0x78, 0x65, 0x5F, 0x74, - 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, + 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x69, 0x73, 0x5F, 0x33, 0x64, 0x00, 0x62, 0x6F, 0x6F, 0x6C, 0x00, 0xAB, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x03, 0x00, 0x00, - 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, - 0x6F, 0x70, 0x79, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, + 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, + 0x6F, 0x61, 0x64, 0x5F, 0x73, 0x69, 0x7A, 0x65, 0x5F, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x65, 0x6E, 0x64, 0x69, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x65, 0x6E, 0x64, 0x69, 0x61, 0x6E, 0x6E, 0x65, 0x73, 0x73, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, - 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, + 0x78, 0x74, 0x75, 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x6D, 0x69, 0x70, 0x5F, 0x6F, 0x66, 0x66, 0x73, 0x65, 0x74, 0x00, 0x78, 0x65, 0x5F, 0x74, 0x65, 0x78, 0x74, 0x75, - 0x72, 0x65, 0x5F, 0x63, 0x6F, 0x70, 0x79, 0x5F, 0x67, 0x75, 0x65, 0x73, + 0x72, 0x65, 0x5F, 0x6C, 0x6F, 0x61, 0x64, 0x5F, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5F, 0x66, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x00, 0x4D, 0x69, 0x63, 0x72, 0x6F, 0x73, 0x6F, 0x66, 0x74, 0x20, 0x28, 0x52, 0x29, 0x20, 0x48, 0x4C, 0x53, 0x4C, 0x20, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x20, 0x43, diff --git a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5a_r8_cs.txt b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5a_r8_cs.txt index 617e318d1..1c5fb6272 100644 --- a/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5a_r8_cs.txt +++ b/src/xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5a_r8_cs.txt @@ -4,19 +4,19 @@ // // Buffer Definitions: // -// cbuffer XeTextureCopyConstants +// cbuffer XeTextureLoadConstants // { // -// uint xe_texture_copy_guest_base; // Offset: 0 Size: 4 -// uint xe_texture_copy_guest_pitch; // Offset: 4 Size: 4 -// uint xe_texture_copy_host_base; // Offset: 8 Size: 4 -// uint xe_texture_copy_host_pitch; // Offset: 12 Size: 4 -// uint3 xe_texture_copy_size_texels; // Offset: 16 Size: 12 -// bool xe_texture_copy_is_3d; // Offset: 28 Size: 4 -// uint3 xe_texture_copy_size_blocks; // Offset: 32 Size: 12 -// uint xe_texture_copy_endianness; // Offset: 44 Size: 4 -// uint3 xe_texture_copy_guest_mip_offset;// Offset: 48 Size: 12 -// uint xe_texture_copy_guest_format; // Offset: 60 Size: 4 [unused] +// uint xe_texture_load_guest_base; // Offset: 0 Size: 4 +// uint xe_texture_load_guest_pitch; // Offset: 4 Size: 4 +// uint xe_texture_load_host_base; // Offset: 8 Size: 4 +// uint xe_texture_load_host_pitch; // Offset: 12 Size: 4 +// uint3 xe_texture_load_size_texels; // Offset: 16 Size: 12 +// bool xe_texture_load_is_3d; // Offset: 28 Size: 4 +// uint3 xe_texture_load_size_blocks; // Offset: 32 Size: 12 +// uint xe_texture_load_endianness; // Offset: 44 Size: 4 +// uint3 xe_texture_load_guest_mip_offset;// Offset: 48 Size: 12 +// uint xe_texture_load_guest_format; // Offset: 60 Size: 4 [unused] // // } // @@ -25,9 +25,9 @@ // // Name Type Format Dim ID HLSL Bind Count // ------------------------------ ---------- ------- ----------- ------- -------------- ------ -// xe_texture_copy_source texture byte r/o T0 t0 1 -// xe_texture_copy_dest UAV byte r/w U0 u0 1 -// XeTextureCopyConstants cbuffer NA NA CB0 cb0 1 +// xe_texture_load_source texture byte r/o T0 t0 1 +// xe_texture_load_dest UAV byte r/w U0 u0 1 +// XeTextureLoadConstants cbuffer NA NA CB0 cb0 1 // // // diff --git a/src/xenia/gpu/d3d12/shaders/texture_copy.hlsli b/src/xenia/gpu/d3d12/shaders/texture_copy.hlsli deleted file mode 100644 index c1aca03ce..000000000 --- a/src/xenia/gpu/d3d12/shaders/texture_copy.hlsli +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef XENIA_GPU_D3D12_SHADERS_TEXTURE_COPY_HLSLI_ -#define XENIA_GPU_D3D12_SHADERS_TEXTURE_COPY_HLSLI_ - -#include "byte_swap.hlsli" -#include "texture_address.hlsli" - -cbuffer XeTextureCopyConstants : register(b0) { - uint xe_texture_copy_guest_base; - // For linear textures - row byte pitch. - uint xe_texture_copy_guest_pitch; - uint xe_texture_copy_host_base; - uint xe_texture_copy_host_pitch; - - uint3 xe_texture_copy_size_texels; - bool xe_texture_copy_is_3d; - - uint3 xe_texture_copy_size_blocks; - uint xe_texture_copy_endianness; - - // Offset within the packed mip for small mips. - uint3 xe_texture_copy_guest_mip_offset; - uint xe_texture_copy_guest_format; -}; - -#define XeTextureCopyGuestPitchTiled 0xFFFFFFFFu - -ByteAddressBuffer xe_texture_copy_source : register(t0); -RWByteAddressBuffer xe_texture_copy_dest : register(u0); - -// bpb and bpb_log2 are separate because bpb may be not a power of 2 (like 96). -uint4 XeTextureCopyGuestBlockOffsets(uint3 block_index, uint bpb, - uint bpb_log2) { - uint3 block_index_guest = block_index + xe_texture_copy_guest_mip_offset; - uint4 block_offsets_guest; - [branch] if (xe_texture_copy_guest_pitch == XeTextureCopyGuestPitchTiled) { - [branch] if (xe_texture_copy_is_3d) { - block_offsets_guest = XeTextureTiledOffset3D( - block_index_guest, xe_texture_copy_size_blocks.xy, bpb_log2); - } else { - block_offsets_guest = XeTextureTiledOffset2D( - block_index_guest.xy, xe_texture_copy_size_blocks.x, bpb_log2); - } - } else { - block_offsets_guest = - uint4(0u, 1u, 2u, 3u) * bpb + XeTextureGuestLinearOffset( - block_index_guest, xe_texture_copy_size_blocks.y, - xe_texture_copy_guest_pitch, bpb); - } - return block_offsets_guest + xe_texture_copy_guest_base; -} - -#endif // XENIA_GPU_D3D12_SHADERS_TEXTURE_COPY_HLSLI_ diff --git a/src/xenia/gpu/d3d12/shaders/texture_load.hlsli b/src/xenia/gpu/d3d12/shaders/texture_load.hlsli new file mode 100644 index 000000000..d4d57ef06 --- /dev/null +++ b/src/xenia/gpu/d3d12/shaders/texture_load.hlsli @@ -0,0 +1,52 @@ +#ifndef XENIA_GPU_D3D12_SHADERS_TEXTURE_COPY_HLSLI_ +#define XENIA_GPU_D3D12_SHADERS_TEXTURE_COPY_HLSLI_ + +#include "byte_swap.hlsli" +#include "texture_address.hlsli" + +cbuffer XeTextureLoadConstants : register(b0) { + uint xe_texture_load_guest_base; + // For linear textures - row byte pitch. + uint xe_texture_load_guest_pitch; + uint xe_texture_load_host_base; + uint xe_texture_load_host_pitch; + + uint3 xe_texture_load_size_texels; + bool xe_texture_load_is_3d; + + uint3 xe_texture_load_size_blocks; + uint xe_texture_load_endianness; + + // Offset within the packed mip for small mips. + uint3 xe_texture_load_guest_mip_offset; + uint xe_texture_load_guest_format; +}; + +#define XeTextureLoadGuestPitchTiled 0xFFFFFFFFu + +ByteAddressBuffer xe_texture_load_source : register(t0); +RWByteAddressBuffer xe_texture_load_dest : register(u0); + +// bpb and bpb_log2 are separate because bpb may be not a power of 2 (like 96). +uint4 XeTextureLoadGuestBlockOffsets(uint3 block_index, uint bpb, + uint bpb_log2) { + uint3 block_index_guest = block_index + xe_texture_load_guest_mip_offset; + uint4 block_offsets_guest; + [branch] if (xe_texture_load_guest_pitch == XeTextureLoadGuestPitchTiled) { + [branch] if (xe_texture_load_is_3d) { + block_offsets_guest = XeTextureTiledOffset3D( + block_index_guest, xe_texture_load_size_blocks.xy, bpb_log2); + } else { + block_offsets_guest = XeTextureTiledOffset2D( + block_index_guest.xy, xe_texture_load_size_blocks.x, bpb_log2); + } + } else { + block_offsets_guest = + uint4(0u, 1u, 2u, 3u) * bpb + XeTextureGuestLinearOffset( + block_index_guest, xe_texture_load_size_blocks.y, + xe_texture_load_guest_pitch, bpb); + } + return block_offsets_guest + xe_texture_load_guest_base; +} + +#endif // XENIA_GPU_D3D12_SHADERS_TEXTURE_COPY_HLSLI_ diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_128bpb.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_128bpb.cs.hlsl index 793f90071..1ecd12332 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_128bpb.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_128bpb.cs.hlsl @@ -1,29 +1,29 @@ -#include "texture_copy.hlsli" +#include "texture_load.hlsli" [numthreads(8, 32, 1)] void main(uint3 xe_thread_id : SV_DispatchThreadID) { // 1 thread = 4 uint4 blocks. uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 16u, 4u); - uint4 block_0 = xe_texture_copy_source.Load4(block_offsets_guest.x); - uint4 block_1 = xe_texture_copy_source.Load4(block_offsets_guest.y); - uint4 block_2 = xe_texture_copy_source.Load4(block_offsets_guest.z); - uint4 block_3 = xe_texture_copy_source.Load4(block_offsets_guest.w); - block_0 = XeByteSwap(block_0, xe_texture_copy_endianness); - block_1 = XeByteSwap(block_1, xe_texture_copy_endianness); - block_2 = XeByteSwap(block_2, xe_texture_copy_endianness); - block_3 = XeByteSwap(block_3, xe_texture_copy_endianness); + XeTextureLoadGuestBlockOffsets(block_index, 16u, 4u); + uint4 block_0 = xe_texture_load_source.Load4(block_offsets_guest.x); + uint4 block_1 = xe_texture_load_source.Load4(block_offsets_guest.y); + uint4 block_2 = xe_texture_load_source.Load4(block_offsets_guest.z); + uint4 block_3 = xe_texture_load_source.Load4(block_offsets_guest.w); + block_0 = XeByteSwap(block_0, xe_texture_load_endianness); + block_1 = XeByteSwap(block_1, xe_texture_load_endianness); + block_2 = XeByteSwap(block_2, xe_texture_load_endianness); + block_3 = XeByteSwap(block_3, xe_texture_load_endianness); uint block_offset_host = XeTextureHostLinearOffset( - block_index, xe_texture_copy_size_blocks.y, xe_texture_copy_host_pitch, - 16u) + xe_texture_copy_host_base; + block_index, xe_texture_load_size_blocks.y, xe_texture_load_host_pitch, + 16u) + xe_texture_load_host_base; uint4 block_offsets_host = uint4(0u, 16u, 32u, 48u) + block_offset_host; - xe_texture_copy_dest.Store4(block_offsets_host.x, block_0); - xe_texture_copy_dest.Store4(block_offsets_host.y, block_1); - xe_texture_copy_dest.Store4(block_offsets_host.z, block_2); - xe_texture_copy_dest.Store4(block_offsets_host.w, block_3); + xe_texture_load_dest.Store4(block_offsets_host.x, block_0); + xe_texture_load_dest.Store4(block_offsets_host.y, block_1); + xe_texture_load_dest.Store4(block_offsets_host.z, block_2); + xe_texture_load_dest.Store4(block_offsets_host.w, block_3); } diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_16bpb.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_16bpb.cs.hlsl index e21475553..761669832 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_16bpb.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_16bpb.cs.hlsl @@ -1,34 +1,34 @@ -#include "texture_copy.hlsli" +#include "texture_load.hlsli" [numthreads(8, 32, 1)] void main(uint3 xe_thread_id : SV_DispatchThreadID) { // 1 thread = 4 ushort blocks. uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 2u, 1u); + XeTextureLoadGuestBlockOffsets(block_index, 2u, 1u); uint4 dword_offsets_guest = block_offsets_guest & ~3u; - uint4 blocks = uint4(xe_texture_copy_source.Load(dword_offsets_guest.x), - xe_texture_copy_source.Load(dword_offsets_guest.y), - xe_texture_copy_source.Load(dword_offsets_guest.z), - xe_texture_copy_source.Load(dword_offsets_guest.w)); + uint4 blocks = uint4(xe_texture_load_source.Load(dword_offsets_guest.x), + xe_texture_load_source.Load(dword_offsets_guest.y), + xe_texture_load_source.Load(dword_offsets_guest.z), + xe_texture_load_source.Load(dword_offsets_guest.w)); blocks = (blocks >> ((block_offsets_guest & 2u) << 3u)) & 0xFFFFu; - blocks = XeByteSwap16(blocks, xe_texture_copy_endianness); + blocks = XeByteSwap16(blocks, xe_texture_load_endianness); // Swap components - Xenos 16-bit packed textures are RGBA, but in Direct3D 12 // they are BGRA. - if (xe_texture_copy_guest_format == 3u) { + if (xe_texture_load_guest_format == 3u) { // k_1_5_5_5. blocks = (blocks & ((31u << 5u) | (1u << 15u))) | ((blocks & 31u) << 10u) | ((blocks >> 10u) & 31u); - } else if (xe_texture_copy_guest_format == 4u) { + } else if (xe_texture_load_guest_format == 4u) { // k_5_6_5. blocks = (blocks & (63u << 5u)) | ((blocks & 31u) << 11u) | ((blocks >> 11u) & 31u); - } else if (xe_texture_copy_guest_format == 15u) { + } else if (xe_texture_load_guest_format == 15u) { // k_4_4_4_4. blocks = (blocks & 0xF0F0u) | ((blocks & 15u) << 8u) | ((blocks >> 8u) & 15u); @@ -36,8 +36,8 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { // TODO(Triang3l): k_6_5_5. uint block_offset_host = XeTextureHostLinearOffset( - block_index, xe_texture_copy_size_blocks.y, xe_texture_copy_host_pitch, - 2u) + xe_texture_copy_host_base; - xe_texture_copy_dest.Store2(block_offset_host, + block_index, xe_texture_load_size_blocks.y, xe_texture_load_host_pitch, + 2u) + xe_texture_load_host_base; + xe_texture_load_dest.Store2(block_offset_host, blocks.xz | (blocks.yw << 16u)); } diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_32bpb.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_32bpb.cs.hlsl index cfc39b1b3..f7b8f5c42 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_32bpb.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_32bpb.cs.hlsl @@ -1,22 +1,22 @@ -#include "texture_copy.hlsli" +#include "texture_load.hlsli" [numthreads(8, 32, 1)] void main(uint3 xe_thread_id : SV_DispatchThreadID) { // 1 thread = 4 uint blocks. uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 4u, 2u); - uint4 blocks = uint4(xe_texture_copy_source.Load(block_offsets_guest.x), - xe_texture_copy_source.Load(block_offsets_guest.y), - xe_texture_copy_source.Load(block_offsets_guest.z), - xe_texture_copy_source.Load(block_offsets_guest.w)); - blocks = XeByteSwap(blocks, xe_texture_copy_endianness); + XeTextureLoadGuestBlockOffsets(block_index, 4u, 2u); + uint4 blocks = uint4(xe_texture_load_source.Load(block_offsets_guest.x), + xe_texture_load_source.Load(block_offsets_guest.y), + xe_texture_load_source.Load(block_offsets_guest.z), + xe_texture_load_source.Load(block_offsets_guest.w)); + blocks = XeByteSwap(blocks, xe_texture_load_endianness); uint block_offset_host = XeTextureHostLinearOffset( - block_index, xe_texture_copy_size_blocks.y, xe_texture_copy_host_pitch, - 4u) + xe_texture_copy_host_base; - xe_texture_copy_dest.Store4(block_offset_host, blocks); + block_index, xe_texture_load_size_blocks.y, xe_texture_load_host_pitch, + 4u) + xe_texture_load_host_base; + xe_texture_load_dest.Store4(block_offset_host, blocks); } diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_64bpb.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_64bpb.cs.hlsl index a29e9430a..585b0e8eb 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_64bpb.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_64bpb.cs.hlsl @@ -1,24 +1,24 @@ -#include "texture_copy.hlsli" +#include "texture_load.hlsli" [numthreads(8, 32, 1)] void main(uint3 xe_thread_id : SV_DispatchThreadID) { // 1 thread = 4 uint2 blocks. uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 8u, 3u); - uint4 blocks_01 = uint4(xe_texture_copy_source.Load2(block_offsets_guest.x), - xe_texture_copy_source.Load2(block_offsets_guest.y)); - uint4 blocks_23 = uint4(xe_texture_copy_source.Load2(block_offsets_guest.z), - xe_texture_copy_source.Load2(block_offsets_guest.w)); - blocks_01 = XeByteSwap(blocks_01, xe_texture_copy_endianness); - blocks_23 = XeByteSwap(blocks_23, xe_texture_copy_endianness); + XeTextureLoadGuestBlockOffsets(block_index, 8u, 3u); + uint4 blocks_01 = uint4(xe_texture_load_source.Load2(block_offsets_guest.x), + xe_texture_load_source.Load2(block_offsets_guest.y)); + uint4 blocks_23 = uint4(xe_texture_load_source.Load2(block_offsets_guest.z), + xe_texture_load_source.Load2(block_offsets_guest.w)); + blocks_01 = XeByteSwap(blocks_01, xe_texture_load_endianness); + blocks_23 = XeByteSwap(blocks_23, xe_texture_load_endianness); uint block_offset_host = XeTextureHostLinearOffset( - block_index, xe_texture_copy_size_blocks.y, xe_texture_copy_host_pitch, - 8u) + xe_texture_copy_host_base; - xe_texture_copy_dest.Store4(block_offset_host, blocks_01); - xe_texture_copy_dest.Store4(block_offset_host + 16u, blocks_23); + block_index, xe_texture_load_size_blocks.y, xe_texture_load_host_pitch, + 8u) + xe_texture_load_host_base; + xe_texture_load_dest.Store4(block_offset_host, blocks_01); + xe_texture_load_dest.Store4(block_offset_host + 16u, blocks_23); } diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_8bpb.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_8bpb.cs.hlsl index d4386b8ab..4793dfbf8 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_8bpb.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_8bpb.cs.hlsl @@ -1,26 +1,26 @@ -#include "texture_copy.hlsli" +#include "texture_load.hlsli" [numthreads(8, 32, 1)] void main(uint3 xe_thread_id : SV_DispatchThreadID) { // 1 thread = 4 ubyte blocks. uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 1u, 0u); + XeTextureLoadGuestBlockOffsets(block_index, 1u, 0u); uint4 dword_offsets_guest = block_offsets_guest & ~3u; - uint4 blocks = uint4(xe_texture_copy_source.Load(dword_offsets_guest.x), - xe_texture_copy_source.Load(dword_offsets_guest.y), - xe_texture_copy_source.Load(dword_offsets_guest.z), - xe_texture_copy_source.Load(dword_offsets_guest.w)); + uint4 blocks = uint4(xe_texture_load_source.Load(dword_offsets_guest.x), + xe_texture_load_source.Load(dword_offsets_guest.y), + xe_texture_load_source.Load(dword_offsets_guest.z), + xe_texture_load_source.Load(dword_offsets_guest.w)); blocks = (blocks >> ((block_offsets_guest & 3u) << 3u)) & 0xFFu; blocks <<= uint4(0u, 8u, 16u, 24u); blocks.xy |= blocks.zw; blocks.x |= blocks.y; uint block_offset_host = XeTextureHostLinearOffset( - block_index, xe_texture_copy_size_blocks.y, xe_texture_copy_host_pitch, - 1u) + xe_texture_copy_host_base; - xe_texture_copy_dest.Store(block_offset_host, blocks.x); + block_index, xe_texture_load_size_blocks.y, xe_texture_load_host_pitch, + 1u) + xe_texture_load_host_base; + xe_texture_load_dest.Store(block_offset_host, blocks.x); } diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_ctx1.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_ctx1.cs.hlsl index e796464b2..7e2cbd623 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_ctx1.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_ctx1.cs.hlsl @@ -1,5 +1,5 @@ #include "pixel_formats.hlsli" -#include "texture_copy.hlsli" +#include "texture_load.hlsli" // http://fileadmin.cs.lth.se/cs/Personal/Michael_Doggett/talks/unc-xenos-doggett.pdf // CXT1 is like DXT3/5 color, but 2-component and with 8:8 endpoints rather than @@ -47,17 +47,17 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { // 1 thread = 4 CTX1 (8bpb) blocks to 16x4 R8G8 texels. uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 8u, 3u); - uint4 blocks_01 = uint4(xe_texture_copy_source.Load2(block_offsets_guest.x), - xe_texture_copy_source.Load2(block_offsets_guest.y)); - uint4 blocks_23 = uint4(xe_texture_copy_source.Load2(block_offsets_guest.z), - xe_texture_copy_source.Load2(block_offsets_guest.w)); - blocks_01 = XeByteSwap(blocks_01, xe_texture_copy_endianness); - blocks_23 = XeByteSwap(blocks_23, xe_texture_copy_endianness); + XeTextureLoadGuestBlockOffsets(block_index, 8u, 3u); + uint4 blocks_01 = uint4(xe_texture_load_source.Load2(block_offsets_guest.x), + xe_texture_load_source.Load2(block_offsets_guest.y)); + uint4 blocks_23 = uint4(xe_texture_load_source.Load2(block_offsets_guest.z), + xe_texture_load_source.Load2(block_offsets_guest.w)); + blocks_01 = XeByteSwap(blocks_01, xe_texture_load_endianness); + blocks_23 = XeByteSwap(blocks_23, xe_texture_load_endianness); // Unpack the endpoints as: // 0x00g000r0 0x00g100r1 0x00g200r2 0x00g300r3 @@ -76,17 +76,17 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { // Uncompress and write the rows. uint3 texel_index_host = block_index << uint3(2u, 2u, 0u); uint texel_offset_host = XeTextureHostLinearOffset( - texel_index_host, xe_texture_copy_size_texels.y, - xe_texture_copy_host_pitch, 2u) + xe_texture_copy_host_base; + texel_index_host, xe_texture_load_size_texels.y, + xe_texture_load_host_pitch, 2u) + xe_texture_load_host_base; for (uint i = 0u; i < 4u; ++i) { uint4 row_01, row_23; XeCTX1FourBlocksRowToR8G8(end_low_rr00gg00, end_high_rr00gg00, weights_high >> (i * 8u), row_01, row_23); - xe_texture_copy_dest.Store4(texel_offset_host, row_01); - xe_texture_copy_dest.Store4(texel_offset_host + 16u, row_23); - if (++texel_index_host.y >= xe_texture_copy_size_texels.y) { + xe_texture_load_dest.Store4(texel_offset_host, row_01); + xe_texture_load_dest.Store4(texel_offset_host + 16u, row_23); + if (++texel_index_host.y >= xe_texture_load_size_texels.y) { return; } - texel_offset_host += xe_texture_copy_host_pitch; + texel_offset_host += xe_texture_load_host_pitch; } } diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_depth_float.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_depth_float.cs.hlsl index 2f88746eb..9a12de517 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_depth_float.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_depth_float.cs.hlsl @@ -1,5 +1,5 @@ #include "pixel_formats.hlsli" -#include "texture_copy.hlsli" +#include "texture_load.hlsli" [numthreads(8, 32, 1)] void main(uint3 xe_thread_id : SV_DispatchThreadID) { @@ -8,18 +8,18 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { // DXGI_FORMAT_X32_TYPELESS_G8X24_UINT SRV). uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 4u, 2u); - uint4 blocks = uint4(xe_texture_copy_source.Load(block_offsets_guest.x), - xe_texture_copy_source.Load(block_offsets_guest.y), - xe_texture_copy_source.Load(block_offsets_guest.z), - xe_texture_copy_source.Load(block_offsets_guest.w)); - blocks = XeByteSwap(blocks, xe_texture_copy_endianness); + XeTextureLoadGuestBlockOffsets(block_index, 4u, 2u); + uint4 blocks = uint4(xe_texture_load_source.Load(block_offsets_guest.x), + xe_texture_load_source.Load(block_offsets_guest.y), + xe_texture_load_source.Load(block_offsets_guest.z), + xe_texture_load_source.Load(block_offsets_guest.w)); + blocks = XeByteSwap(blocks, xe_texture_load_endianness); uint block_offset_host = XeTextureHostLinearOffset( - block_index, xe_texture_copy_size_blocks.y, xe_texture_copy_host_pitch, - 4u) + xe_texture_copy_host_base; - xe_texture_copy_dest.Store4(block_offset_host, XeFloat20e4To32(blocks >> 8u)); + block_index, xe_texture_load_size_blocks.y, xe_texture_load_host_pitch, + 4u) + xe_texture_load_host_base; + xe_texture_load_dest.Store4(block_offset_host, XeFloat20e4To32(blocks >> 8u)); } diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_depth_unorm.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_depth_unorm.cs.hlsl index 98d89b3a1..b662d8f37 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_depth_unorm.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_depth_unorm.cs.hlsl @@ -1,4 +1,4 @@ -#include "texture_copy.hlsli" +#include "texture_load.hlsli" [numthreads(8, 32, 1)] void main(uint3 xe_thread_id : SV_DispatchThreadID) { @@ -7,19 +7,19 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { // DXGI_FORMAT_X24_TYPELESS_G8_UINT SRV). uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 4u, 2u); - uint4 blocks = uint4(xe_texture_copy_source.Load(block_offsets_guest.x), - xe_texture_copy_source.Load(block_offsets_guest.y), - xe_texture_copy_source.Load(block_offsets_guest.z), - xe_texture_copy_source.Load(block_offsets_guest.w)); - blocks = XeByteSwap(blocks, xe_texture_copy_endianness); + XeTextureLoadGuestBlockOffsets(block_index, 4u, 2u); + uint4 blocks = uint4(xe_texture_load_source.Load(block_offsets_guest.x), + xe_texture_load_source.Load(block_offsets_guest.y), + xe_texture_load_source.Load(block_offsets_guest.z), + xe_texture_load_source.Load(block_offsets_guest.w)); + blocks = XeByteSwap(blocks, xe_texture_load_endianness); uint block_offset_host = XeTextureHostLinearOffset( - block_index, xe_texture_copy_size_blocks.y, xe_texture_copy_host_pitch, - 4u) + xe_texture_copy_host_base; - xe_texture_copy_dest.Store4(block_offset_host, + block_index, xe_texture_load_size_blocks.y, xe_texture_load_host_pitch, + 4u) + xe_texture_load_host_base; + xe_texture_load_dest.Store4(block_offset_host, asuint(float4(blocks >> 8u) / 16777215.0)); } diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_dxn_rg8.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_dxn_rg8.cs.hlsl index b5198b4ed..ba315bc9e 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_dxn_rg8.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_dxn_rg8.cs.hlsl @@ -1,24 +1,24 @@ #include "pixel_formats.hlsli" -#include "texture_copy.hlsli" +#include "texture_load.hlsli" [numthreads(8, 32, 1)] void main(uint3 xe_thread_id : SV_DispatchThreadID) { // 1 thread = 4 DXN (16bpb) blocks to 16x4 R8G8 texels. uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 16u, 4u); - uint4 block_0 = xe_texture_copy_source.Load4(block_offsets_guest.x); - uint4 block_1 = xe_texture_copy_source.Load4(block_offsets_guest.y); - uint4 block_2 = xe_texture_copy_source.Load4(block_offsets_guest.z); - uint4 block_3 = xe_texture_copy_source.Load4(block_offsets_guest.w); - block_0 = XeByteSwap(block_0, xe_texture_copy_endianness); - block_1 = XeByteSwap(block_1, xe_texture_copy_endianness); - block_2 = XeByteSwap(block_2, xe_texture_copy_endianness); - block_3 = XeByteSwap(block_3, xe_texture_copy_endianness); + XeTextureLoadGuestBlockOffsets(block_index, 16u, 4u); + uint4 block_0 = xe_texture_load_source.Load4(block_offsets_guest.x); + uint4 block_1 = xe_texture_load_source.Load4(block_offsets_guest.y); + uint4 block_2 = xe_texture_load_source.Load4(block_offsets_guest.z); + uint4 block_3 = xe_texture_load_source.Load4(block_offsets_guest.w); + block_0 = XeByteSwap(block_0, xe_texture_load_endianness); + block_1 = XeByteSwap(block_1, xe_texture_load_endianness); + block_2 = XeByteSwap(block_2, xe_texture_load_endianness); + block_3 = XeByteSwap(block_3, xe_texture_load_endianness); uint4 r_blocks_0 = uint4(block_0.x, block_1.x, block_2.x, block_3.x); uint4 r_blocks_1 = uint4(block_0.y, block_1.y, block_2.y, block_3.y); uint4 g_blocks_0 = uint4(block_0.z, block_1.z, block_2.z, block_3.z); @@ -47,8 +47,8 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { // Uncompress and write the rows. uint3 texel_index_host = block_index << uint3(2u, 2u, 0u); uint texel_offset_host = XeTextureHostLinearOffset( - texel_index_host, xe_texture_copy_size_texels.y, - xe_texture_copy_host_pitch, 2u) + xe_texture_copy_host_base; + texel_index_host, xe_texture_load_size_texels.y, + xe_texture_load_host_pitch, 2u) + xe_texture_load_host_base; for (uint i = 0u; i < 4u; ++i) { uint4 r_row = XeDXT5Four8StepBlocksRowToA8( r_end_low, r_end_high, @@ -67,16 +67,16 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { (((r_row.xxyy >> uint4(8u, 24u, 8u, 24u)) & 0xFFu) << 16u) | (((g_row.xxyy >> uint4(0u, 16u, 0u, 16u)) & 0xFFu) << 8u) | (((g_row.xxyy >> uint4(8u, 24u, 8u, 24u)) & 0xFFu) << 24u); - xe_texture_copy_dest.Store4(texel_offset_host, rg_row_half); + xe_texture_load_dest.Store4(texel_offset_host, rg_row_half); rg_row_half = ((r_row.zzww >> uint4(0u, 16u, 0u, 16u)) & 0xFFu) | (((r_row.zzww >> uint4(8u, 24u, 8u, 24u)) & 0xFFu) << 16u) | (((g_row.zzww >> uint4(0u, 16u, 0u, 16u)) & 0xFFu) << 8u) | (((g_row.zzww >> uint4(8u, 24u, 8u, 24u)) & 0xFFu) << 24u); - xe_texture_copy_dest.Store4(texel_offset_host + 16u, rg_row_half); - if (++texel_index_host.y >= xe_texture_copy_size_texels.y) { + xe_texture_load_dest.Store4(texel_offset_host + 16u, rg_row_half); + if (++texel_index_host.y >= xe_texture_load_size_texels.y) { return; } - texel_offset_host += xe_texture_copy_host_pitch; + texel_offset_host += xe_texture_load_host_pitch; } } diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_dxt1_rgba8.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_dxt1_rgba8.cs.hlsl index e32079313..8222ac2ff 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_dxt1_rgba8.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_dxt1_rgba8.cs.hlsl @@ -1,5 +1,5 @@ #include "pixel_formats.hlsli" -#include "texture_copy.hlsli" +#include "texture_load.hlsli" void XeDXT1FourTransBlocksRowToRGBA8( uint4 rgb_10b_low, uint4 rgb_10b_high, uint4 weights, out uint4 row_0, @@ -51,17 +51,17 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { // 1 thread = 4 DXT1 (8bpb) blocks to 16x4 R8G8B8A8 texels. uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 8u, 3u); - uint4 blocks_01 = uint4(xe_texture_copy_source.Load2(block_offsets_guest.x), - xe_texture_copy_source.Load2(block_offsets_guest.y)); - uint4 blocks_23 = uint4(xe_texture_copy_source.Load2(block_offsets_guest.z), - xe_texture_copy_source.Load2(block_offsets_guest.w)); - blocks_01 = XeByteSwap(blocks_01, xe_texture_copy_endianness); - blocks_23 = XeByteSwap(blocks_23, xe_texture_copy_endianness); + XeTextureLoadGuestBlockOffsets(block_index, 8u, 3u); + uint4 blocks_01 = uint4(xe_texture_load_source.Load2(block_offsets_guest.x), + xe_texture_load_source.Load2(block_offsets_guest.y)); + uint4 blocks_23 = uint4(xe_texture_load_source.Load2(block_offsets_guest.z), + xe_texture_load_source.Load2(block_offsets_guest.w)); + blocks_01 = XeByteSwap(blocks_01, xe_texture_load_endianness); + blocks_23 = XeByteSwap(blocks_23, xe_texture_load_endianness); uint4 codes = uint4(blocks_01.yw, blocks_23.yw); // Sort the color indices so they can be used as weights for the second @@ -87,8 +87,8 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { // Uncompress and write the rows. uint3 texel_index_host = block_index << uint3(2u, 2u, 0u); uint texel_offset_host = XeTextureHostLinearOffset( - texel_index_host, xe_texture_copy_size_texels.y, - xe_texture_copy_host_pitch, 4u) + xe_texture_copy_host_base; + texel_index_host, xe_texture_load_size_texels.y, + xe_texture_load_host_pitch, 4u) + xe_texture_load_host_base; for (uint i = 0u; i < 4u; ++i) { uint4 row_opaque_0, row_opaque_1, row_opaque_2, row_opaque_3; XeDXTFourBlocksRowToRGB8(rgb_10b_low, rgb_10b_high, @@ -102,17 +102,17 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { XeDXT1FourTransBlocksRowToRGBA8(rgb_10b_low, rgb_10b_high, weights_trans >> (i * 8u), row_trans_0, row_trans_1, row_trans_2, row_trans_3); - xe_texture_copy_dest.Store4(texel_offset_host, + xe_texture_load_dest.Store4(texel_offset_host, is_trans.x ? row_trans_0 : row_opaque_0); - xe_texture_copy_dest.Store4(texel_offset_host + 16u, + xe_texture_load_dest.Store4(texel_offset_host + 16u, is_trans.y ? row_trans_1 : row_opaque_1); - xe_texture_copy_dest.Store4(texel_offset_host + 32u, + xe_texture_load_dest.Store4(texel_offset_host + 32u, is_trans.z ? row_trans_2 : row_opaque_2); - xe_texture_copy_dest.Store4(texel_offset_host + 48u, + xe_texture_load_dest.Store4(texel_offset_host + 48u, is_trans.w ? row_trans_3 : row_opaque_3); - if (++texel_index_host.y >= xe_texture_copy_size_texels.y) { + if (++texel_index_host.y >= xe_texture_load_size_texels.y) { return; } - texel_offset_host += xe_texture_copy_host_pitch; + texel_offset_host += xe_texture_load_host_pitch; } } diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_dxt3_rgba8.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_dxt3_rgba8.cs.hlsl index d948ae377..f45daffcc 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_dxt3_rgba8.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_dxt3_rgba8.cs.hlsl @@ -1,24 +1,24 @@ #include "pixel_formats.hlsli" -#include "texture_copy.hlsli" +#include "texture_load.hlsli" [numthreads(8, 32, 1)] void main(uint3 xe_thread_id : SV_DispatchThreadID) { // 1 thread = 4 DXT3 (16bpb) blocks to 16x4 R8G8B8A8 texels. uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 16u, 4u); - uint4 block_0 = xe_texture_copy_source.Load4(block_offsets_guest.x); - uint4 block_1 = xe_texture_copy_source.Load4(block_offsets_guest.y); - uint4 block_2 = xe_texture_copy_source.Load4(block_offsets_guest.z); - uint4 block_3 = xe_texture_copy_source.Load4(block_offsets_guest.w); - block_0 = XeByteSwap(block_0, xe_texture_copy_endianness); - block_1 = XeByteSwap(block_1, xe_texture_copy_endianness); - block_2 = XeByteSwap(block_2, xe_texture_copy_endianness); - block_3 = XeByteSwap(block_3, xe_texture_copy_endianness); + XeTextureLoadGuestBlockOffsets(block_index, 16u, 4u); + uint4 block_0 = xe_texture_load_source.Load4(block_offsets_guest.x); + uint4 block_1 = xe_texture_load_source.Load4(block_offsets_guest.y); + uint4 block_2 = xe_texture_load_source.Load4(block_offsets_guest.z); + uint4 block_3 = xe_texture_load_source.Load4(block_offsets_guest.w); + block_0 = XeByteSwap(block_0, xe_texture_load_endianness); + block_1 = XeByteSwap(block_1, xe_texture_load_endianness); + block_2 = XeByteSwap(block_2, xe_texture_load_endianness); + block_3 = XeByteSwap(block_3, xe_texture_load_endianness); uint4 alpha4_r01 = uint4(block_0.x, block_1.x, block_2.x, block_3.x); uint4 alpha4_r23 = uint4(block_0.y, block_1.y, block_2.y, block_3.y); @@ -35,8 +35,8 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { // Uncompress and write the rows. uint3 texel_index_host = block_index << uint3(2u, 2u, 0u); uint texel_offset_host = XeTextureHostLinearOffset( - texel_index_host, xe_texture_copy_size_texels.y, - xe_texture_copy_host_pitch, 4u) + xe_texture_copy_host_base; + texel_index_host, xe_texture_load_size_texels.y, + xe_texture_load_host_pitch, 4u) + xe_texture_load_host_base; for (uint i = 0u; i < 4u; ++i) { uint4 row_0, row_1, row_2, row_3; XeDXTFourBlocksRowToRGB8(rgb_10b_low, rgb_10b_high, @@ -44,21 +44,21 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { row_0, row_1, row_2, row_3); uint4 alpha_row = XeDXT3FourBlocksRowToA8( (i < 2u ? alpha4_r01 : alpha4_r23) >> ((i & 1u) * 16u)); - xe_texture_copy_dest.Store4( + xe_texture_load_dest.Store4( texel_offset_host, row_0 | ((alpha_row.xxxx << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u)); - xe_texture_copy_dest.Store4( + xe_texture_load_dest.Store4( texel_offset_host + 16u, row_1 | ((alpha_row.yyyy << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u)); - xe_texture_copy_dest.Store4( + xe_texture_load_dest.Store4( texel_offset_host + 32u, row_2 | ((alpha_row.zzzz << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u)); - xe_texture_copy_dest.Store4( + xe_texture_load_dest.Store4( texel_offset_host + 48u, row_3 | ((alpha_row.wwww << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u)); - if (++texel_index_host.y >= xe_texture_copy_size_texels.y) { + if (++texel_index_host.y >= xe_texture_load_size_texels.y) { return; } - texel_offset_host += xe_texture_copy_host_pitch; + texel_offset_host += xe_texture_load_host_pitch; } } diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_dxt3a.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_dxt3a.cs.hlsl index 878181816..6cefaf3d0 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_dxt3a.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_dxt3a.cs.hlsl @@ -1,5 +1,5 @@ #include "pixel_formats.hlsli" -#include "texture_copy.hlsli" +#include "texture_load.hlsli" [numthreads(8, 32, 1)] void main(uint3 xe_thread_id : SV_DispatchThreadID) { @@ -7,30 +7,30 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { // DXT3 because the overhead is the same, 2x, but the size must be 4-aligned). uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 8u, 3u); - uint4 blocks_01 = uint4(xe_texture_copy_source.Load2(block_offsets_guest.x), - xe_texture_copy_source.Load2(block_offsets_guest.y)); - uint4 blocks_23 = uint4(xe_texture_copy_source.Load2(block_offsets_guest.z), - xe_texture_copy_source.Load2(block_offsets_guest.w)); - blocks_01 = XeByteSwap(blocks_01, xe_texture_copy_endianness); - blocks_23 = XeByteSwap(blocks_23, xe_texture_copy_endianness); + XeTextureLoadGuestBlockOffsets(block_index, 8u, 3u); + uint4 blocks_01 = uint4(xe_texture_load_source.Load2(block_offsets_guest.x), + xe_texture_load_source.Load2(block_offsets_guest.y)); + uint4 blocks_23 = uint4(xe_texture_load_source.Load2(block_offsets_guest.z), + xe_texture_load_source.Load2(block_offsets_guest.w)); + blocks_01 = XeByteSwap(blocks_01, xe_texture_load_endianness); + blocks_23 = XeByteSwap(blocks_23, xe_texture_load_endianness); uint4 alpha4_r01 = uint4(blocks_01.xz, blocks_23.xz); uint4 alpha4_r23 = uint4(blocks_01.yw, blocks_23.yw); // Uncompress and write the rows. uint3 texel_index_host = block_index << uint3(2u, 2u, 0u); uint texel_offset_host = XeTextureHostLinearOffset( - texel_index_host, xe_texture_copy_size_texels.y, - xe_texture_copy_host_pitch, 1u) + xe_texture_copy_host_base; + texel_index_host, xe_texture_load_size_texels.y, + xe_texture_load_host_pitch, 1u) + xe_texture_load_host_base; for (uint i = 0u; i < 4u; ++i) { - xe_texture_copy_dest.Store4(texel_offset_host, XeDXT3FourBlocksRowToA8( + xe_texture_load_dest.Store4(texel_offset_host, XeDXT3FourBlocksRowToA8( (i < 2u ? alpha4_r01 : alpha4_r23) >> ((i & 1u) * 16u))); - if (++texel_index_host.y >= xe_texture_copy_size_texels.y) { + if (++texel_index_host.y >= xe_texture_load_size_texels.y) { return; } - texel_offset_host += xe_texture_copy_host_pitch; + texel_offset_host += xe_texture_load_host_pitch; } } diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_dxt5_rgba8.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_dxt5_rgba8.cs.hlsl index d9dc74106..9a1848e7d 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_dxt5_rgba8.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_dxt5_rgba8.cs.hlsl @@ -1,24 +1,24 @@ #include "pixel_formats.hlsli" -#include "texture_copy.hlsli" +#include "texture_load.hlsli" [numthreads(8, 32, 1)] void main(uint3 xe_thread_id : SV_DispatchThreadID) { // 1 thread = 4 DXT5 (16bpb) blocks to 16x4 R8G8B8A8 texels. uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 16u, 4u); - uint4 block_0 = xe_texture_copy_source.Load4(block_offsets_guest.x); - uint4 block_1 = xe_texture_copy_source.Load4(block_offsets_guest.y); - uint4 block_2 = xe_texture_copy_source.Load4(block_offsets_guest.z); - uint4 block_3 = xe_texture_copy_source.Load4(block_offsets_guest.w); - block_0 = XeByteSwap(block_0, xe_texture_copy_endianness); - block_1 = XeByteSwap(block_1, xe_texture_copy_endianness); - block_2 = XeByteSwap(block_2, xe_texture_copy_endianness); - block_3 = XeByteSwap(block_3, xe_texture_copy_endianness); + XeTextureLoadGuestBlockOffsets(block_index, 16u, 4u); + uint4 block_0 = xe_texture_load_source.Load4(block_offsets_guest.x); + uint4 block_1 = xe_texture_load_source.Load4(block_offsets_guest.y); + uint4 block_2 = xe_texture_load_source.Load4(block_offsets_guest.z); + uint4 block_3 = xe_texture_load_source.Load4(block_offsets_guest.w); + block_0 = XeByteSwap(block_0, xe_texture_load_endianness); + block_1 = XeByteSwap(block_1, xe_texture_load_endianness); + block_2 = XeByteSwap(block_2, xe_texture_load_endianness); + block_3 = XeByteSwap(block_3, xe_texture_load_endianness); uint4 alpha_blocks_0 = uint4(block_0.x, block_1.x, block_2.x, block_3.x); uint4 alpha_blocks_1 = uint4(block_0.y, block_1.y, block_2.y, block_3.y); @@ -46,8 +46,8 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { // Uncompress and write the rows. uint3 texel_index_host = block_index << uint3(2u, 2u, 0u); uint texel_offset_host = XeTextureHostLinearOffset( - texel_index_host, xe_texture_copy_size_texels.y, - xe_texture_copy_host_pitch, 4u) + xe_texture_copy_host_base; + texel_index_host, xe_texture_load_size_texels.y, + xe_texture_load_host_pitch, 4u) + xe_texture_load_host_base; for (uint i = 0u; i < 4u; ++i) { uint4 row_0, row_1, row_2, row_3; XeDXTFourBlocksRowToRGB8(rgb_10b_low, rgb_10b_high, @@ -59,21 +59,21 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { ((i & 1u) * 12u), (i < 2u ? alpha_weights_6step_r01 : alpha_weights_6step_r23) >> ((i & 1u) * 12u)); - xe_texture_copy_dest.Store4( + xe_texture_load_dest.Store4( texel_offset_host, row_0 | ((alpha_row.xxxx << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u)); - xe_texture_copy_dest.Store4( + xe_texture_load_dest.Store4( texel_offset_host + 16u, row_1 | ((alpha_row.yyyy << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u)); - xe_texture_copy_dest.Store4( + xe_texture_load_dest.Store4( texel_offset_host + 32u, row_2 | ((alpha_row.zzzz << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u)); - xe_texture_copy_dest.Store4( + xe_texture_load_dest.Store4( texel_offset_host + 48u, row_3 | ((alpha_row.wwww << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u)); - if (++texel_index_host.y >= xe_texture_copy_size_texels.y) { + if (++texel_index_host.y >= xe_texture_load_size_texels.y) { return; } - texel_offset_host += xe_texture_copy_host_pitch; + texel_offset_host += xe_texture_load_host_pitch; } } diff --git a/src/xenia/gpu/d3d12/shaders/texture_load_dxt5a_r8.cs.hlsl b/src/xenia/gpu/d3d12/shaders/texture_load_dxt5a_r8.cs.hlsl index 2538c93c2..a07424f66 100644 --- a/src/xenia/gpu/d3d12/shaders/texture_load_dxt5a_r8.cs.hlsl +++ b/src/xenia/gpu/d3d12/shaders/texture_load_dxt5a_r8.cs.hlsl @@ -1,22 +1,22 @@ #include "pixel_formats.hlsli" -#include "texture_copy.hlsli" +#include "texture_load.hlsli" [numthreads(8, 32, 1)] void main(uint3 xe_thread_id : SV_DispatchThreadID) { // 1 thread = 4 DXT5A (8bpb) blocks to 16x4 R8 texels. uint3 block_index = xe_thread_id; block_index.x <<= 2u; - [branch] if (any(block_index >= xe_texture_copy_size_blocks)) { + [branch] if (any(block_index >= xe_texture_load_size_blocks)) { return; } uint4 block_offsets_guest = - XeTextureCopyGuestBlockOffsets(block_index, 8u, 3u); - uint4 blocks_01 = uint4(xe_texture_copy_source.Load2(block_offsets_guest.x), - xe_texture_copy_source.Load2(block_offsets_guest.y)); - uint4 blocks_23 = uint4(xe_texture_copy_source.Load2(block_offsets_guest.z), - xe_texture_copy_source.Load2(block_offsets_guest.w)); - blocks_01 = XeByteSwap(blocks_01, xe_texture_copy_endianness); - blocks_23 = XeByteSwap(blocks_23, xe_texture_copy_endianness); + XeTextureLoadGuestBlockOffsets(block_index, 8u, 3u); + uint4 blocks_01 = uint4(xe_texture_load_source.Load2(block_offsets_guest.x), + xe_texture_load_source.Load2(block_offsets_guest.y)); + uint4 blocks_23 = uint4(xe_texture_load_source.Load2(block_offsets_guest.z), + xe_texture_load_source.Load2(block_offsets_guest.w)); + blocks_01 = XeByteSwap(blocks_01, xe_texture_load_endianness); + blocks_23 = XeByteSwap(blocks_23, xe_texture_load_endianness); uint4 r_blocks_0 = uint4(blocks_01.xz, blocks_23.xz); uint4 r_blocks_1 = uint4(blocks_01.yw, blocks_23.yw); @@ -35,18 +35,18 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) { // Uncompress and write the rows. uint3 texel_index_host = block_index << uint3(2u, 2u, 0u); uint texel_offset_host = XeTextureHostLinearOffset( - texel_index_host, xe_texture_copy_size_texels.y, - xe_texture_copy_host_pitch, 1u) + xe_texture_copy_host_base; + texel_index_host, xe_texture_load_size_texels.y, + xe_texture_load_host_pitch, 1u) + xe_texture_load_host_base; for (uint i = 0u; i < 4u; ++i) { - xe_texture_copy_dest.Store4(texel_offset_host, XeDXT5Four8StepBlocksRowToA8( + xe_texture_load_dest.Store4(texel_offset_host, XeDXT5Four8StepBlocksRowToA8( r_end_low, r_end_high, (i < 2u ? r_weights_8step_r01 : r_weights_8step_r23) >> ((i & 1u) * 12u), (i < 2u ? r_weights_6step_r01 : r_weights_6step_r23) >> ((i & 1u) * 12u))); - if (++texel_index_host.y >= xe_texture_copy_size_texels.y) { + if (++texel_index_host.y >= xe_texture_load_size_texels.y) { return; } - texel_offset_host += xe_texture_copy_host_pitch; + texel_offset_host += xe_texture_load_host_pitch; } }