From 34946c57b0f5c2556f209b81a005397b2790ec6f Mon Sep 17 00:00:00 2001 From: Triang3l Date: Fri, 5 Oct 2018 20:02:36 +0300 Subject: [PATCH] [D3D12] Rename XeTextureCopy to XeTextureLoad in shaders --- .../shaders/dxbc/texture_load_128bpb_cs.cso | Bin 6904 -> 6904 bytes .../shaders/dxbc/texture_load_128bpb_cs.h | 40 +++++++------- .../shaders/dxbc/texture_load_128bpb_cs.txt | 28 +++++----- .../shaders/dxbc/texture_load_16bpb_cs.cso | Bin 7100 -> 7100 bytes .../shaders/dxbc/texture_load_16bpb_cs.h | 40 +++++++------- .../shaders/dxbc/texture_load_16bpb_cs.txt | 28 +++++----- .../shaders/dxbc/texture_load_32bpb_cs.cso | Bin 6268 -> 6268 bytes .../shaders/dxbc/texture_load_32bpb_cs.h | 40 +++++++------- .../shaders/dxbc/texture_load_32bpb_cs.txt | 28 +++++----- .../shaders/dxbc/texture_load_64bpb_cs.cso | Bin 6656 -> 6656 bytes .../shaders/dxbc/texture_load_64bpb_cs.h | 40 +++++++------- .../shaders/dxbc/texture_load_64bpb_cs.txt | 28 +++++----- .../shaders/dxbc/texture_load_8bpb_cs.cso | Bin 6020 -> 6020 bytes .../d3d12/shaders/dxbc/texture_load_8bpb_cs.h | 40 +++++++------- .../shaders/dxbc/texture_load_8bpb_cs.txt | 28 +++++----- .../shaders/dxbc/texture_load_ctx1_cs.cso | Bin 9704 -> 9704 bytes .../d3d12/shaders/dxbc/texture_load_ctx1_cs.h | 40 +++++++------- .../shaders/dxbc/texture_load_ctx1_cs.txt | 28 +++++----- .../dxbc/texture_load_depth_float_cs.cso | Bin 6896 -> 6896 bytes .../dxbc/texture_load_depth_float_cs.h | 40 +++++++------- .../dxbc/texture_load_depth_float_cs.txt | 28 +++++----- .../dxbc/texture_load_depth_unorm_cs.cso | Bin 6368 -> 6368 bytes .../dxbc/texture_load_depth_unorm_cs.h | 40 +++++++------- .../dxbc/texture_load_depth_unorm_cs.txt | 28 +++++----- .../shaders/dxbc/texture_load_dxn_rg8_cs.cso | Bin 17868 -> 17868 bytes .../shaders/dxbc/texture_load_dxn_rg8_cs.h | 40 +++++++------- .../shaders/dxbc/texture_load_dxn_rg8_cs.txt | 28 +++++----- .../dxbc/texture_load_dxt1_rgba8_cs.cso | Bin 15704 -> 15704 bytes .../shaders/dxbc/texture_load_dxt1_rgba8_cs.h | 40 +++++++------- .../dxbc/texture_load_dxt1_rgba8_cs.txt | 28 +++++----- .../dxbc/texture_load_dxt3_rgba8_cs.cso | Bin 13308 -> 13308 bytes .../shaders/dxbc/texture_load_dxt3_rgba8_cs.h | 40 +++++++------- .../dxbc/texture_load_dxt3_rgba8_cs.txt | 28 +++++----- .../shaders/dxbc/texture_load_dxt3a_cs.cso | Bin 7624 -> 7624 bytes .../shaders/dxbc/texture_load_dxt3a_cs.h | 40 +++++++------- .../shaders/dxbc/texture_load_dxt3a_cs.txt | 28 +++++----- .../dxbc/texture_load_dxt5_rgba8_cs.cso | Bin 17140 -> 17140 bytes .../shaders/dxbc/texture_load_dxt5_rgba8_cs.h | 40 +++++++------- .../dxbc/texture_load_dxt5_rgba8_cs.txt | 28 +++++----- .../shaders/dxbc/texture_load_dxt5a_r8_cs.cso | Bin 11648 -> 11648 bytes .../shaders/dxbc/texture_load_dxt5a_r8_cs.h | 40 +++++++------- .../shaders/dxbc/texture_load_dxt5a_r8_cs.txt | 28 +++++----- .../gpu/d3d12/shaders/texture_copy.hlsli | 52 ------------------ .../gpu/d3d12/shaders/texture_load.hlsli | 52 ++++++++++++++++++ .../d3d12/shaders/texture_load_128bpb.cs.hlsl | 34 ++++++------ .../d3d12/shaders/texture_load_16bpb.cs.hlsl | 28 +++++----- .../d3d12/shaders/texture_load_32bpb.cs.hlsl | 22 ++++---- .../d3d12/shaders/texture_load_64bpb.cs.hlsl | 26 ++++----- .../d3d12/shaders/texture_load_8bpb.cs.hlsl | 20 +++---- .../d3d12/shaders/texture_load_ctx1.cs.hlsl | 30 +++++----- .../shaders/texture_load_depth_float.cs.hlsl | 22 ++++---- .../shaders/texture_load_depth_unorm.cs.hlsl | 22 ++++---- .../shaders/texture_load_dxn_rg8.cs.hlsl | 34 ++++++------ .../shaders/texture_load_dxt1_rgba8.cs.hlsl | 34 ++++++------ .../shaders/texture_load_dxt3_rgba8.cs.hlsl | 38 ++++++------- .../d3d12/shaders/texture_load_dxt3a.cs.hlsl | 28 +++++----- .../shaders/texture_load_dxt5_rgba8.cs.hlsl | 38 ++++++------- .../shaders/texture_load_dxt5a_r8.cs.hlsl | 28 +++++----- 58 files changed, 730 insertions(+), 730 deletions(-) delete mode 100644 src/xenia/gpu/d3d12/shaders/texture_copy.hlsli create mode 100644 src/xenia/gpu/d3d12/shaders/texture_load.hlsli 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 7b59bc67f40382bf13419adf651462732d29faba..53a51dcac5ae1f844f4c344cf570ade4df9ce974 100644 GIT binary patch delta 269 zcmexi`omPjCBn(MWT&r;ZoIGgi|JgCz1+WYOcZ&pmy@5E5?`EOT9lm1P>~v6l3Gzx zT9g_O7EVbmE@6mB4S|UH099_*WZcKd0+O8kn#n~0tSY?}s4Tu9vm`kK-Gs^h%wqCj zMH%@x)wD1>Lrgr)Y!d@kT%1{z8lRMtpPXHcZeo0DUP@+SUS4W3rWC{>xtRs=`Dtmz OsU_%oHz%`96$1d7f@yvL delta 269 zcmexi`omPjCBn)1iR2^oIEfHJlP;f?F^dfXCyG4ROU^H-j4#eFElN&hs7Q@3Nv$X; zElQ0C3#X(OmoP-6hCsxefhsp^GVWt!0ZC4N&E%p0R+U}~R2E;5S(2QAZo*`LW-)oN zqKtf;YFe0`Ats(?wuu2NF3zkPo0D0liU9z}N@`I6 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 bbcb3c1311049913415f63dda3fbc390b33d85ca..dc78141198718cf9b8733eb65823baf5ea092ea8 100644 GIT binary patch delta 269 zcmdmEzQB&IC8-r9 zrA4XnVBwV1;u404)DVc64^ZW1O~!qUEFj6rubEsFz^c+qfy&|wGE0&(&`p@^&nzYn zR+N#CQ%wuAGsMKx%r-G##l@LbsqslU`N`SE=qARe=A~pN=H;apV@g3BlABo&pP!ai OoLYjecXKjJq&NVn8*5kq delta 269 zcmdmEzQnvDAxSwNDLUo*KVfK{cJ0+q!VWR@gnpqnt+pIJ;E ztSBQNr_@8)EdNO1swXl&yE 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 866c43789500c2e0529b55a367ced51e68bf10d7..784b861748df20ecd3a37d9d94f5bbe743deaf69 100644 GIT binary patch delta 269 zcmexk@W(*JCBn)1(X`4S^>XqPQ{s#BON)|I87flaOHwOJ zN{dqC!NMu2#U%_8sUZ+CAE3(3nvDAxSwNDLUo*KVfK{cJ0+q!VWR@gnpqnt+pIJ;E ztSBQNr_@8)C{Nf7|%4Qx>W delta 269 zcmexk@W(*JCBn(MPw~7$)#Q^+{C~DPK8oaVoG9{KFFC)UGQK#!v?w{1p&~WDB(BT*45M8Uhh>2CCew$+(Y^1tdB7HIs`1SXFu{P+5FIW=V1ex(Sp0nZ@M6 ziZb$Xs%c?%hM0Jo*(L_8xHz*aH9jdPKRLS?-Ng9Ryp+tuyu8$6Oeu&%ax)9!^V8Cb OQ%lhGZcb*A6afG%ZEHRN 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 a4746dd13d535c632f8fb046b2d51eaf091c537b..a1488b1f89446f0bb4fe83b8ac74c5c4282a9ee9 100644 GIT binary patch delta 269 zcmZoLX)qCSiEwhhZvE$ZO8fi65+`_joNu|Gn<(;JFDE}SCB8Vnv?w{1p&~WDB(BT*45M8UhjX0jk`r$+(Y^1tdB7HIs`1SXFu{P+5FIW=V1ex(Sp0nZ@M6 ziZb$Xs%c?%hM0Jo*(L_8xHz*aH9jdPKRLS?-Ng9Ryp+tuyu8$6Oeu&%ax)9!^V8Cb OQ%lhGZcb*ID+&NMb!#vH delta 269 zcmZoLX)qCSiEwfb+qifA@f94i^kk}xpQQ`yOcZ&pmz-Zv8DE@VT9lm1P>~v6l3Gzx zT9g_O7EVbmE@6mB4S|R`166L;WZcKd0+O8kn#n~0tSY?}s4Tu9vm`kK-Gs^h%wqCj zMH%@x)wD1>Lrgr)Y!d@kT%1{z8lRMtpPXHcZeo0DUP@+SUS4W3rWC{>xtRs=`Dtmz OsU_%oHz%{q6$JpmCu&&$ 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 de654ca61c3e95826c072a43777fe3fb4b778b22..d5065af780a30d449be51f3fcdd0dcaae183f229 100644 GIT binary patch delta 269 zcmZqCZ_yWViEwh}JhslUO09I|ifZvymn|BVCW<`Q%gIkni7(DCElN&hs7Q@3Nv$X; zElQ0C3#X(OmoP-6hCsx8fGRg@GVWt!0ZC4N&E%p0R+U}~R2E;5S(2QAZo*`LW-)oN zqKtf;YFe0`Ats(?wuu2NF3zkPo0C}-g#ibiXn_C# delta 269 zcmZqCZ_yWViEwhh^=0FpTbmyA6{@g^?J?qIo+$EMFFC)UGQK#!v?w{1p&~WDB(BT*45M8Uhh>2CCew$+(Y^1tdB7HIs`1SXFu{P+5FIW=V1ex(Sp0nZ@M6 ziZb$Xs%c?%hM0Jo*(L_8xHz*aH9jdPKRLS?-Ng9Ryp+tuyu8$6Oeu&%ax)9!^V8Cb OQ%lhGZcb)V6b1mG?P|0D 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 d8d7ea0984215dfb61fff96bce83be2f125c193b..7732aa4e6bd55998ed4b81dd1a657fb135ef8e44 100644 GIT binary patch delta 269 zcmaFi{lZ(sCBn)1_xab)w){NAn>yY3(z!halP8Ki*UQOIOo=bfFD*(=WvEDvFG;N^ zDJ@Ek2Med97MCzYq=rDme1Ix9YclR*WC2M|e$C{f09KV=3RD(fkXe$Pfo{TNe`Yax zu%e87oN8K_ogpTkX10j|D=yBgN{vs-$xqHMMmI4&H7_MIF)uH*7*h)3klf6I`24iA O;?xp!y_=I+S``7dlx>;- delta 269 zcmaFi{lZ(sCBn(sR;{N@Yr~SVZ&qDKH+3$tO%!>qmz-Zv8DE@VT9lm1P>~v6l3Gzx zT9g_O7EVbmE@6mB4S|R`166L;WZcKd0+O8kn#n~0tSY?}s4Tu9vm`kK-Gs^h%wqCj zMH%@x)wD1>Lrgr)Y!d@kT%1{z8lRMtpPXHcZeo0DUP@+SUS4W3rWC{>xtRs=`Dtmz OsU_%oHz%{SDgpr6@M~rO 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 043588c2190484108f75f154b7730fdb6b197d51..8a54222b6e4df482d791eec8e10edadcde35217a 100644 GIT binary patch delta 269 zcmexh`oUDhCBn&BS6`#m%9qtOs9Z`RGCL%2qR4Z-oczR;_~QK1qU2PDiq!a$)QXbQ zqSSb>a7t=%2}49`2t>>WsB*I=<32_fkmTgoOfCvwRq3TbW$^`>CCM4+CQSBc7Lx}n z%E-s5riIxVV&Z9Ln;5X-;>@bl_@tctp1!C5#vK^Xvm!nxMXrjn-z2y9Y%J|~^(xT*4hKkhqlGKWl z(xTLOuy9IhaS202Y6wKk8K`ozCgVOv7LerR*Gw)7U{&d*KxOd-nI*{?=q60|XBLwO zE6T{nsiuY58DipTW}6tW;^NGz)cB;F{N(InbQ9xK^HMSs^YT)QF{L05$;~W?&reG$ OPAx&#yE&PqR}29B_G^9s 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 dc953d8d50e6f543569dcaefb9a977c6223e4f1d..569dbcd342891de03920b8e9cbfbde5265bd2fe8 100644 GIT binary patch delta 269 zcmaE0_`p!aCBn)1*|kqnGpl$@9S`}QeEsOE-9(Y+dO7)tDe=YmrA5i93>B&IC8-r9 zrA4XnVBwV1;u404)DVc64^ZW1O~!qUEFj6rubEsFz^c+qfy&|wGE0&(&`p@^&nzYn zR+N#CQ%wuAGsMKx%r-G##l@LbsqslU`N`SE=qARe=A~pN=H;apV@g3BlABo&pP!ai OoLYjecXKjJtq1@OQ)}V? delta 269 zcmaE0_`p!aCBn&hUC_U8TB5c$eodRDxWZcW-$aq;ddc|(mGQ;-rA5i93>B&IC8-r9 zrA4XnVBwV1;u404)DVc6Gf?GbO~!qUEFj6rubEsFz^c+qfy&|wGE0&(&`p@^&nzYn zR+N#CQ%wuAGsMKx%r-G##l@LbsqslU`N`SE=qARe=A~pN=H;apV@g3BlABo&pP!ai OoLYjecXKjJtq1`5%WQN2 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 8a36298aac72f42c64ce7240e2e721472233a6d7..0c28c1a9c278ad9c07d8e3b4565f7ca0fe3c1907 100644 GIT binary patch delta 271 zcmX@p&3LApQN$&}$@x&T(yrBqKgAs7>)y72&t>{Vk>`3j`H3m<#rdU0$*Bw#sqrPL z6(yxbsqtXpl+@x9hKSSpI?y9eVtgX~jJ~;sO&zp6ey&7gWX<=a&{Gr!rKe#+Rg4 zl#~{w#)E}ZQj1F%B2q&jV$ML7n>88tF|vRpC%KR;9)#<>V)47o(dPpPHAFnV6TCT8t?LaY$}vL41B% PT5)O#y57ynESZh~@&jsd 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 e359d0366eba460afa637e7fa1eaceb0aefaed9d..38f413551cc3e4b0c7d92079d80460fa3da567f1 100644 GIT binary patch delta 269 zcmcanb)!neCBn(stn}rxiINxma=h36&rSZ-H&NudUQT{uN_=sCX;E@2Lq%$QNoqw& zX;ErCSU4rMxP&1hH3TB&15~+LlW`v-3rKSEYbF;3u&VS@ptAUa%#!2`bQ31~GmFWC z6=me(RMW!j3^DOEvrP*eGpro4oP84~rmz-Zv8DE@VT9lm1P>~v6l3Gzx zT9g_O7EVbmE@6mB4S|R`166L;WZcKd0+O8kn#n~0tSY?}s4Tu9vm`kK-Gs^h%wqCj zMH%@x)wD1>Lrgr)Y!d@kT%1{z8lRMtpPXHcZeo0DUP@+SUS4W3rWC{>xtRs=`Dtmz OsU_%oHz%{q)CT|%m1?^H 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 706ed9aa862614fc06cf725f6f7ec87c8f366cb6..3bd801a469dc1570c3f9e8488e8a7da307202985 100644 GIT binary patch delta 269 zcmX?MeZpGACBn%$bFG=uErI5Rm*btD-~VLPHc{lcUQT{uN_=sCX;E@2Lq%$QNoqw& zX;ErCSU4rMxP&1hH3TB&15~+LlW`v-3rKSEYbF;3u&VS@ptAUa%#!2`bQ31~GmFWC z6=me(RMW!j3^DOEvrPBT*45M8Uhh>2CCew$+(Y^1tdB7HIs`1SXFu{P+5FIW=V1ex(Sp0nZ@M6 ziZb$Xs%c?%hM0Jo*(L_8xHz*aH9jdPKRLS?-Ng9Ryp+tuyu8$6Oeu&%ax)9!^V8Cb OQ%lhGZcb)Nl>`8L2Wsd5 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 1f56ee3efce9ab41c2f0834d4c4d4ea2b4dcb818..ed2beb79f2da2e0aa95a086d04297d6bf6be153f 100644 GIT binary patch delta 271 zcmey;%J`*~QN$&}$$9bm9W5t(k4|{N#-)BzMYn#U$aB4%{KS;_;{4L07_tr@dcSB$r|%5i<5TleG86OiQj0OAAP&jREQrrf QODj$-LD#!EnPs9K08YkhL;wH) delta 271 zcmey;%J`*~QN$&}$$7$m_dk= 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; } }