[D3D12] DXT5 decompression shader (not used yet)

This commit is contained in:
Triang3l 2018-09-22 15:52:07 +03:00
parent 4d1b3caf8c
commit bb24521c2b
15 changed files with 2967 additions and 881 deletions

View File

@ -1,11 +1,11 @@
// generated from `xb buildhlsl`
// source: texture_load_ctx1.cs.hlsl
const uint8_t texture_load_ctx1_cs[] = {
0x44, 0x58, 0x42, 0x43, 0x7E, 0xC2, 0x29, 0xDA, 0xF8, 0x25, 0x11, 0x52,
0xE1, 0xBC, 0xD4, 0xC7, 0xF9, 0x11, 0xB6, 0x3E, 0x01, 0x00, 0x00, 0x00,
0x20, 0x26, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x44, 0x58, 0x42, 0x43, 0xED, 0x1A, 0xB0, 0x4F, 0x63, 0xAA, 0x84, 0xCA,
0x1C, 0x81, 0x5A, 0xEB, 0xAD, 0x91, 0x17, 0xA2, 0x01, 0x00, 0x00, 0x00,
0xA0, 0x25, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00,
0x54, 0x04, 0x00, 0x00, 0x64, 0x04, 0x00, 0x00, 0x74, 0x04, 0x00, 0x00,
0x84, 0x25, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x18, 0x04, 0x00, 0x00,
0x04, 0x25, 0x00, 0x00, 0x52, 0x44, 0x45, 0x46, 0x18, 0x04, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x00, 0x01, 0x05, 0x53, 0x43, 0x00, 0x05, 0x00, 0x00,
0xF0, 0x03, 0x00, 0x00, 0x13, 0x13, 0x44, 0x25, 0x3C, 0x00, 0x00, 0x00,
@ -96,8 +96,8 @@ const uint8_t texture_load_ctx1_cs[] = {
0x30, 0x2E, 0x31, 0x00, 0x49, 0x53, 0x47, 0x4E, 0x08, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x4F, 0x53, 0x47, 0x4E,
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x53, 0x48, 0x45, 0x58, 0x08, 0x21, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x42, 0x08, 0x00, 0x00, 0x6A, 0x08, 0x00, 0x01, 0x59, 0x00, 0x00, 0x07,
0x53, 0x48, 0x45, 0x58, 0x88, 0x20, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00,
0x22, 0x08, 0x00, 0x00, 0x6A, 0x08, 0x00, 0x01, 0x59, 0x00, 0x00, 0x07,
0x46, 0x8E, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xA1, 0x00, 0x00, 0x06, 0x46, 0x7E, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
@ -105,7 +105,7 @@ const uint8_t texture_load_ctx1_cs[] = {
0x9D, 0x00, 0x00, 0x06, 0x46, 0xEE, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x5F, 0x00, 0x00, 0x02, 0x72, 0x00, 0x02, 0x00, 0x68, 0x00, 0x00, 0x02,
0x0D, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00,
0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x06,
0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x02, 0x00,
0x01, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x04,
@ -594,104 +594,122 @@ const uint8_t texture_load_ctx1_cs[] = {
0x1E, 0x00, 0x00, 0x09, 0x12, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3B, 0x00, 0x00, 0x05, 0xF2, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x07,
0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x80, 0x30, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05,
0x12, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x22, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x30, 0x00, 0x00, 0x01, 0x50, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x04, 0x03,
0x2A, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x14,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x1D, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00,
0x1D, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x56, 0x05, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x06, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x82, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0x12, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05,
0x22, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x01, 0x50, 0x00, 0x00, 0x07,
0x42, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x03, 0x00, 0x04, 0x03, 0x2A, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x1A, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00,
0xA6, 0x0A, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x05,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x08,
0x00, 0xD0, 0x00, 0x00, 0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x56, 0x05, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x56, 0x05, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x08,
0x26, 0x00, 0x00, 0x08, 0x00, 0xD0, 0x00, 0x00, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x09,
0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x0F,
0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x0F,
0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x08,
0x00, 0xD0, 0x00, 0x00, 0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0xA6, 0x0A, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0xA6, 0x0A, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x08,
0x00, 0xD0, 0x00, 0x00, 0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x86, 0x0D, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x86, 0x0D, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x86, 0x0D, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0xF6, 0x0F, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0x09, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x08, 0x00, 0xD0, 0x00, 0x00,
0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x23, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x86, 0x0D, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x86, 0x0D, 0x10, 0x00,
0x03, 0x00, 0x00, 0x00, 0x86, 0x0D, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x8A, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x8A, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x26, 0x00, 0x00, 0x08, 0x00, 0xD0, 0x00, 0x00, 0xF2, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x09,
0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x86, 0x0D, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x86, 0x0D, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00,
0x86, 0x0D, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05,
0x52, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x01, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xA2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x06, 0x08, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00,
0xFF, 0x07, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x0B, 0xF2, 0x00, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0xF6, 0x0F, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x0B, 0xF2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x08,
0x00, 0xD0, 0x00, 0x00, 0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x09, 0xF2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x86, 0x0D, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x86, 0x0D, 0x10, 0x00, 0x03, 0x00, 0x00, 0x00, 0x86, 0x0D, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x52, 0x00, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x06, 0x01, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0xA2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x06, 0x08, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05,
0x52, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x06, 0x01, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0xA2, 0x00, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x06, 0x08, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00,
0x4E, 0x00, 0x00, 0x0B, 0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x00, 0xD0, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xFF, 0x07, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x0B, 0xF2, 0x00, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
@ -700,119 +718,90 @@ const uint8_t texture_load_ctx1_cs[] = {
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x52, 0x00, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x06, 0x01, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0xA2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x06, 0x08, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00,
0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00,
0x4E, 0x00, 0x00, 0x0B, 0xF2, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x00, 0xD0, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0C, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x0B,
0xF2, 0x00, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x0B, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0B, 0x00, 0x00, 0x00,
0x36, 0x00, 0x00, 0x05, 0x52, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0xA6, 0x0B, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00,
0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00,
0x4E, 0x00, 0x00, 0x0B, 0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x00, 0xD0, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x4E, 0x00, 0x00, 0x0B, 0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x00, 0xD0, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x52, 0x00, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0xA6, 0x0B, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00,
0xFF, 0x07, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x0B, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x4E, 0x00, 0x00, 0x0B, 0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x00, 0xD0, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A,
0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x08, 0xF2, 0xE0, 0x21, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x08, 0xF2, 0xE0, 0x21, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00,
0x1E, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x04, 0x03,
0x2A, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x01,
0x15, 0x00, 0x00, 0x01, 0x1E, 0x00, 0x00, 0x09, 0x12, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x3A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x22, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x01,
0x3E, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54, 0x94, 0x00, 0x00, 0x00,
0xE3, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00,
0x52, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05, 0x52, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0xA6, 0x0B, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00,
0xFF, 0x07, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x0B, 0xF2, 0x00, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x0B, 0xF2, 0x00, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x05,
0x52, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0xA6, 0x0B, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00,
0xFF, 0x07, 0x00, 0x00, 0xFF, 0x07, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x0B,
0xF2, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00,
0x08, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x02, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07,
0xF2, 0x00, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x07, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00,
0x55, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x0B, 0xF2, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
0x29, 0x00, 0x00, 0x0A, 0xF2, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00,
0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
0x18, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x07, 0xF2, 0x00, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00,
0x46, 0x0E, 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x08,
0xF2, 0xE0, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x06, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x42, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xA6, 0x00, 0x00, 0x08,
0xF2, 0xE0, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x2A, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x46, 0x0E, 0x10, 0x00,
0x05, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07, 0x82, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x07,
0x42, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x3A, 0x00, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1F, 0x00, 0x04, 0x03, 0x2A, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00,
0x3E, 0x00, 0x00, 0x01, 0x15, 0x00, 0x00, 0x01, 0x1E, 0x00, 0x00, 0x09,
0x12, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x3A, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x07,
0x22, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x10, 0x00,
0x04, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x16, 0x00, 0x00, 0x01, 0x3E, 0x00, 0x00, 0x01, 0x53, 0x54, 0x41, 0x54,
0x94, 0x00, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3D, 0x00, 0x00, 0x00, 0x45, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
0x08, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 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, 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, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
};

View File

@ -47,7 +47,7 @@ dcl_constantbuffer CB0[0:0][4], immediateIndexed, space=0
dcl_resource_raw T0[0:0], space=0
dcl_uav_raw U0[0:0], space=0
dcl_input vThreadID.xyz
dcl_temps 13
dcl_temps 12
dcl_thread_group 8, 32, 1
ishl r0.x, vThreadID.x, l(2)
mov r0.yz, vThreadID.yyzy
@ -197,57 +197,50 @@ ishl r0.x, r0.x, l(1)
imad r0.z, vThreadID.z, CB0[0][1].y, r0.y
imad r0.x, r0.z, CB0[0][0].w, r0.x
iadd r0.x, r0.x, CB0[0][0].z
not r4.xyzw, r2.xyzw
mov r0.z, CB0[0][1].y
mov r0.w, r0.y
mov r5.x, r0.x
mov r5.y, l(0)
mov r4.x, r0.x
mov r4.y, l(0)
loop
uge r5.z, r5.y, l(4)
breakc_nz r5.z
bfi r6.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r5.yyyy, l(0, 2, 4, 6)
ushr r7.xyzw, r4.xyzw, r6.xxxx
and r7.xyzw, r7.xyzw, l(3, 3, 3, 3)
ushr r8.xyzw, r2.xyzw, r6.xxxx
and r8.xyzw, r8.xyzw, l(3, 3, 3, 3)
uge r4.z, r4.y, l(4)
breakc_nz r4.z
ishl r4.z, r4.y, l(3)
ushr r5.xyzw, r2.xyzw, r4.zzzz
not r6.xyzw, r5.xyzw
and r7.xyzw, r6.xyzw, l(3, 3, 3, 3)
and r8.xyzw, r5.xyzw, l(3, 3, 3, 3)
imul null, r8.xyzw, r1.xyzw, r8.xyzw
imad r7.xyzw, r7.xyzw, r3.xyzw, r8.xyzw
ushr r8.xyzw, r4.xyzw, r6.yyyy
and r8.xyzw, r8.xyzw, l(3, 3, 3, 3)
ushr r9.xyzw, r2.xyzw, r6.yyyy
and r9.xyzw, r9.xyzw, l(3, 3, 3, 3)
ubfe r8.xyzw, l(2, 2, 2, 2), l(2, 2, 2, 2), r6.xyzw
ubfe r9.xyzw, l(2, 2, 2, 2), l(2, 2, 2, 2), r5.xyzw
imul null, r9.xyzw, r1.xyzw, r9.xyzw
imad r8.xyzw, r8.xyzw, r3.xyzw, r9.xyzw
ushr r9.xyzw, r4.xyzw, r6.zzzz
and r9.xyzw, r9.xyzw, l(3, 3, 3, 3)
ushr r10.xyzw, r2.xyzw, r6.zzzz
and r10.xyzw, r10.xyzw, l(3, 3, 3, 3)
ubfe r9.xyzw, l(2, 2, 2, 2), l(4, 4, 4, 4), r6.xyzw
ubfe r10.xyzw, l(2, 2, 2, 2), l(4, 4, 4, 4), r5.xyzw
imul null, r10.xyzw, r1.xyzw, r10.xyzw
imad r9.xyzw, r9.xzyw, r3.xzyw, r10.xzyw
ushr r10.xyzw, r4.xyzw, r6.wwww
and r10.xyzw, r10.xyzw, l(3, 3, 3, 3)
ushr r6.xyzw, r2.xyzw, r6.wwww
and r6.xyzw, r6.xyzw, l(3, 3, 3, 3)
imul null, r6.xyzw, r1.xyzw, r6.xyzw
imad r6.xyzw, r10.xzyw, r3.xzyw, r6.xzyw
mov r10.xz, r7.xxyx
mov r10.yw, r9.xxxz
ubfe r6.xyzw, l(2, 2, 2, 2), l(6, 6, 6, 6), r6.xyzw
ubfe r5.xyzw, l(2, 2, 2, 2), l(6, 6, 6, 6), r5.xyzw
imul null, r5.xyzw, r1.xyzw, r5.xyzw
imad r5.xyzw, r6.xzyw, r3.xzyw, r5.xzyw
mov r6.xz, r7.xxyx
mov r6.yw, r9.xxxz
and r10.xyzw, r6.xyzw, l(2047, 2047, 2047, 2047)
udiv r10.xyzw, null, r10.xyzw, l(3, 3, 3, 3)
ushr r6.xyzw, r6.xyzw, l(16, 16, 16, 16)
udiv r6.xyzw, null, r6.xyzw, l(3, 3, 3, 3)
ishl r6.xyzw, r6.xyzw, l(8, 8, 8, 8)
or r6.xyzw, r6.xyzw, r10.xyzw
mov r10.xz, r8.xxyx
mov r10.yw, r5.xxxz
and r11.xyzw, r10.xyzw, l(2047, 2047, 2047, 2047)
udiv r11.xyzw, null, r11.xyzw, l(3, 3, 3, 3)
ishl r11.xyzw, r11.xyzw, l(16, 16, 16, 16)
or r6.xyzw, r6.xyzw, r11.xyzw
ushr r10.xyzw, r10.xyzw, l(16, 16, 16, 16)
udiv r10.xyzw, null, r10.xyzw, l(3, 3, 3, 3)
ishl r10.xyzw, r10.xyzw, l(8, 8, 8, 8)
or r10.xyzw, r10.xyzw, r11.xyzw
mov r11.xz, r8.xxyx
mov r11.yw, r6.xxxz
and r12.xyzw, r11.xyzw, l(2047, 2047, 2047, 2047)
udiv r12.xyzw, null, r12.xyzw, l(3, 3, 3, 3)
ishl r12.xyzw, r12.xyzw, l(16, 16, 16, 16)
or r10.xyzw, r10.xyzw, r12.xyzw
ushr r11.xyzw, r11.xyzw, l(16, 16, 16, 16)
udiv r11.xyzw, null, r11.xyzw, l(3, 3, 3, 3)
ishl r11.xyzw, r11.xyzw, l(24, 24, 24, 24)
or r10.xyzw, r10.xyzw, r11.xyzw
ishl r10.xyzw, r10.xyzw, l(24, 24, 24, 24)
or r6.xyzw, r6.xyzw, r10.xyzw
mov r9.xz, r7.zzwz
and r7.xyzw, r9.xyzw, l(2047, 2047, 2047, 2047)
udiv r7.xyzw, null, r7.xyzw, l(3, 3, 3, 3)
@ -255,25 +248,25 @@ loop
udiv r9.xyzw, null, r9.xyzw, l(3, 3, 3, 3)
ishl r9.xyzw, r9.xyzw, l(8, 8, 8, 8)
or r7.xyzw, r7.xyzw, r9.xyzw
mov r6.xz, r8.zzwz
and r8.xyzw, r6.xyzw, l(2047, 2047, 2047, 2047)
mov r5.xz, r8.zzwz
and r8.xyzw, r5.xyzw, l(2047, 2047, 2047, 2047)
udiv r8.xyzw, null, r8.xyzw, l(3, 3, 3, 3)
ishl r8.xyzw, r8.xyzw, l(16, 16, 16, 16)
or r7.xyzw, r7.xyzw, r8.xyzw
ushr r6.xyzw, r6.xyzw, l(16, 16, 16, 16)
udiv r6.xyzw, null, r6.xyzw, l(3, 3, 3, 3)
ishl r6.xyzw, r6.xyzw, l(24, 24, 24, 24)
or r6.xyzw, r6.xyzw, r7.xyzw
store_raw U0[0].xyzw, r5.x, r10.xyzw
iadd r5.z, r5.x, l(16)
store_raw U0[0].xyzw, r5.z, r6.xyzw
ushr r5.xyzw, r5.xyzw, l(16, 16, 16, 16)
udiv r5.xyzw, null, r5.xyzw, l(3, 3, 3, 3)
ishl r5.xyzw, r5.xyzw, l(24, 24, 24, 24)
or r5.xyzw, r5.xyzw, r7.xyzw
store_raw U0[0].xyzw, r4.x, r6.xyzw
iadd r4.z, r4.x, l(16)
store_raw U0[0].xyzw, r4.z, r5.xyzw
iadd r0.w, r0.w, l(1)
uge r5.z, r0.w, r0.z
if_nz r5.z
uge r4.z, r0.w, r0.z
if_nz r4.z
ret
endif
iadd r5.x, r5.x, CB0[0][0].w
iadd r5.y, r5.y, l(1)
iadd r4.x, r4.x, CB0[0][0].w
iadd r4.y, r4.y, l(1)
endloop
ret
// Approximately 227 instruction slots used
// Approximately 220 instruction slots used

File diff suppressed because it is too large Load Diff

View File

@ -228,26 +228,60 @@ ishl r0.x, r0.x, l(2)
imad r0.z, vThreadID.z, CB0[0][1].y, r0.y
imad r0.x, r0.z, CB0[0][0].w, r0.x
iadd r0.x, r0.x, CB0[0][0].z
not r6.xyzw, r3.xyzw
ushr r7.xyzw, r2.xyzw, l(1, 1, 1, 1)
and r8.xyzw, r2.xyzw, r7.xyzw
and r8.xyzw, r8.xyzw, l(0x55555555, 0x55555555, 0x55555555, 0x55555555)
or r7.xyzw, r2.xyzw, r7.xyzw
and r7.xyzw, r7.xyzw, l(0x55555555, 0x55555555, 0x55555555, 0x55555555)
mov r0.z, CB0[0][1].y
mov r0.w, r0.y
mov r9.x, r0.x
mov r9.y, l(0)
mov r6.x, r0.x
mov r6.y, l(0)
loop
uge r9.z, r9.y, l(4)
breakc_nz r9.z
bfi r10.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r9.yyyy, l(0, 2, 4, 6)
ushr r11.xyzw, r6.xxxx, r10.xyzw
uge r6.z, r6.y, l(4)
breakc_nz r6.z
ishl r6.z, r6.y, l(3)
ushr r7.xyzw, r3.wxyz, r6.zzzz
not r8.xyzw, r7.xyzw
ushr r9.yzw, r8.yyyy, l(0, 2, 4, 6)
mov r9.x, r8.y
and r9.xyzw, r9.xyzw, l(3, 3, 3, 3)
ushr r10.yzw, r7.yyyy, l(0, 2, 4, 6)
mov r10.x, r7.y
and r10.xyzw, r10.xyzw, l(3, 3, 3, 3)
imul null, r10.xyzw, r5.xxxx, r10.xyzw
imad r9.xyzw, r9.xyzw, r4.xxxx, r10.xyzw
and r10.xyzw, r9.xyzw, l(1023, 1023, 1023, 1023)
udiv r10.xyzw, null, r10.xyzw, l(3, 3, 3, 3)
ubfe r11.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r9.xyzw
udiv r11.xyzw, null, r11.xyzw, l(3, 3, 3, 3)
ishl r11.xyzw, r11.xyzw, l(8, 8, 8, 8)
or r10.xyzw, r10.xyzw, r11.xyzw
ushr r9.xyzw, r9.xyzw, l(20, 20, 20, 20)
udiv r9.xyzw, null, r9.xyzw, l(3, 3, 3, 3)
ishl r9.xyzw, r9.xyzw, l(16, 16, 16, 16)
or r9.xyzw, r9.xyzw, r10.xyzw
ushr r10.yzw, r8.zzzz, l(0, 2, 4, 6)
mov r10.x, r8.z
and r10.xyzw, r10.xyzw, l(3, 3, 3, 3)
ushr r11.yzw, r7.zzzz, l(0, 2, 4, 6)
mov r11.x, r7.z
and r11.xyzw, r11.xyzw, l(3, 3, 3, 3)
ushr r12.xyzw, r3.xxxx, r10.xyzw
imul null, r11.xyzw, r5.yyyy, r11.xyzw
imad r10.xyzw, r10.xyzw, r4.yyyy, r11.xyzw
and r11.xyzw, r10.xyzw, l(1023, 1023, 1023, 1023)
udiv r11.xyzw, null, r11.xyzw, l(3, 3, 3, 3)
ubfe r12.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r10.xyzw
udiv r12.xyzw, null, r12.xyzw, l(3, 3, 3, 3)
ishl r12.xyzw, r12.xyzw, l(8, 8, 8, 8)
or r11.xyzw, r11.xyzw, r12.xyzw
ushr r10.xyzw, r10.xyzw, l(20, 20, 20, 20)
udiv r10.xyzw, null, r10.xyzw, l(3, 3, 3, 3)
ishl r10.xyzw, r10.xyzw, l(16, 16, 16, 16)
or r10.xyzw, r10.xyzw, r11.xyzw
ushr r11.yzw, r8.wwww, l(0, 2, 4, 6)
mov r11.x, r8.w
and r11.xyzw, r11.xyzw, l(3, 3, 3, 3)
ushr r12.yzw, r7.wwww, l(0, 2, 4, 6)
mov r12.x, r7.w
and r12.xyzw, r12.xyzw, l(3, 3, 3, 3)
imul null, r12.xyzw, r5.xxxx, r12.xyzw
imad r11.xyzw, r11.xyzw, r4.xxxx, r12.xyzw
imul null, r12.xyzw, r5.zzzz, r12.xyzw
imad r11.xyzw, r11.xyzw, r4.zzzz, r12.xyzw
and r12.xyzw, r11.xyzw, l(1023, 1023, 1023, 1023)
udiv r12.xyzw, null, r12.xyzw, l(3, 3, 3, 3)
ubfe r13.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r11.xyzw
@ -258,68 +292,43 @@ loop
udiv r11.xyzw, null, r11.xyzw, l(3, 3, 3, 3)
ishl r11.xyzw, r11.xyzw, l(16, 16, 16, 16)
or r11.xyzw, r11.xyzw, r12.xyzw
ushr r12.xyzw, r6.yyyy, r10.xyzw
and r12.xyzw, r12.xyzw, l(3, 3, 3, 3)
ushr r13.xyzw, r3.yyyy, r10.xyzw
and r13.xyzw, r13.xyzw, l(3, 3, 3, 3)
imul null, r13.xyzw, r5.yyyy, r13.xyzw
imad r12.xyzw, r12.xyzw, r4.yyyy, r13.xyzw
and r13.xyzw, r12.xyzw, l(1023, 1023, 1023, 1023)
udiv r13.xyzw, null, r13.xyzw, l(3, 3, 3, 3)
ubfe r14.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r12.xyzw
udiv r14.xyzw, null, r14.xyzw, l(3, 3, 3, 3)
ishl r14.xyzw, r14.xyzw, l(8, 8, 8, 8)
or r13.xyzw, r13.xyzw, r14.xyzw
ushr r12.xyzw, r12.xyzw, l(20, 20, 20, 20)
ushr r8.yzw, r8.xxxx, l(0, 2, 4, 6)
and r8.xyzw, r8.xyzw, l(3, 3, 3, 3)
ushr r7.yzw, r7.xxxx, l(0, 2, 4, 6)
and r7.xyzw, r7.xyzw, l(3, 3, 3, 3)
imul null, r7.xyzw, r5.wwww, r7.xyzw
imad r7.xyzw, r8.xyzw, r4.wwww, r7.xyzw
and r8.xyzw, r7.xyzw, l(1023, 1023, 1023, 1023)
udiv r8.xyzw, null, r8.xyzw, l(3, 3, 3, 3)
ubfe r12.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r7.xyzw
udiv r12.xyzw, null, r12.xyzw, l(3, 3, 3, 3)
ishl r12.xyzw, r12.xyzw, l(16, 16, 16, 16)
or r12.xyzw, r12.xyzw, r13.xyzw
ushr r13.xyzw, r6.zzzz, r10.xyzw
and r13.xyzw, r13.xyzw, l(3, 3, 3, 3)
ushr r14.xyzw, r3.zzzz, r10.xyzw
and r14.xyzw, r14.xyzw, l(3, 3, 3, 3)
imul null, r14.xyzw, r5.zzzz, r14.xyzw
imad r13.xyzw, r13.xyzw, r4.zzzz, r14.xyzw
and r14.xyzw, r13.xyzw, l(1023, 1023, 1023, 1023)
udiv r14.xyzw, null, r14.xyzw, l(3, 3, 3, 3)
ubfe r15.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r13.xyzw
udiv r15.xyzw, null, r15.xyzw, l(3, 3, 3, 3)
ishl r15.xyzw, r15.xyzw, l(8, 8, 8, 8)
or r14.xyzw, r14.xyzw, r15.xyzw
ushr r13.xyzw, r13.xyzw, l(20, 20, 20, 20)
udiv r13.xyzw, null, r13.xyzw, l(3, 3, 3, 3)
ishl r13.xyzw, r13.xyzw, l(16, 16, 16, 16)
or r13.xyzw, r13.xyzw, r14.xyzw
ushr r14.xyzw, r6.wwww, r10.xyzw
and r14.xyzw, r14.xyzw, l(3, 3, 3, 3)
ushr r15.xyzw, r3.wwww, r10.xyzw
and r15.xyzw, r15.xyzw, l(3, 3, 3, 3)
imul null, r15.xyzw, r5.wwww, r15.xyzw
imad r14.xyzw, r14.xyzw, r4.wwww, r15.xyzw
and r15.xyzw, r14.xyzw, l(1023, 1023, 1023, 1023)
udiv r15.xyzw, null, r15.xyzw, l(3, 3, 3, 3)
ubfe r16.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r14.xyzw
udiv r16.xyzw, null, r16.xyzw, l(3, 3, 3, 3)
ishl r16.xyzw, r16.xyzw, l(8, 8, 8, 8)
or r15.xyzw, r15.xyzw, r16.xyzw
ushr r14.xyzw, r14.xyzw, l(20, 20, 20, 20)
udiv r14.xyzw, null, r14.xyzw, l(3, 3, 3, 3)
ishl r14.xyzw, r14.xyzw, l(16, 16, 16, 16)
or r14.xyzw, r14.xyzw, r15.xyzw
or r11.xyzw, r11.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r12.xyzw, r12.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r13.xyzw, r13.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r14.xyzw, r14.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
iadd r15.xyzw, r10.xyzw, l(1, 1, 1, 1)
ushr r16.xyzw, r2.xxxx, r10.xyzw
and r16.xyzw, r16.xyzw, l(1, 1, 1, 1)
ushr r17.xyzw, r2.xxxx, r15.xyzw
and r17.xyzw, r17.xyzw, l(1, 1, 1, 1)
imul null, r17.xyzw, r5.xxxx, r17.xyzw
imad r16.xyzw, r16.xyzw, r4.xxxx, r17.xyzw
ushr r17.xyzw, r8.xxxx, r10.xyzw
ishl r12.xyzw, r12.xyzw, l(8, 8, 8, 8)
or r8.xyzw, r8.xyzw, r12.xyzw
ushr r7.xyzw, r7.xyzw, l(20, 20, 20, 20)
udiv r7.xyzw, null, r7.xyzw, l(3, 3, 3, 3)
ishl r7.xyzw, r7.xyzw, l(16, 16, 16, 16)
or r7.xyzw, r7.xyzw, r8.xyzw
or r8.xyzw, r9.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r9.xyzw, r10.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r10.xyzw, r11.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r7.xyzw, r7.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
ushr r11.xyzw, r2.wxyz, r6.zzzz
ushr r12.xyzw, r11.yzwx, l(1, 1, 1, 1)
and r13.xyzw, r11.xyzw, r12.wxyz
and r14.xyzw, r13.yzwx, l(0x55555555, 0x55555555, 0x55555555, 0x55555555)
or r12.xyzw, r11.xyzw, r12.wxyz
and r15.xyzw, r12.yzwx, l(0x55555555, 0x55555555, 0x55555555, 0x55555555)
ushr r16.yzw, r11.yyyy, l(0, 2, 4, 6)
mov r16.x, r11.y
and r17.xyzw, r16.xyzw, l(1, 1, 1, 1)
ubfe r16.xyzw, l(1, 1, 1, 1), l(1, 3, 5, 7), r16.xxxx
imul null, r16.xyzw, r5.xxxx, r16.xyzw
imad r16.xyzw, r17.xyzw, r4.xxxx, r16.xyzw
ushr r17.yzw, r14.xxxx, l(0, 2, 4, 6)
mov r17.x, r13.y
and r18.xyzw, r17.xyzw, l(1, 1, 1, 1)
ubfe r18.xyzw, l(9, 9, 9, 9), r18.xyzw, r16.xyzw
mov r17.x, r14.x
bfi r19.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r17.xyzw, l(10, 10, 10, 10)
ubfe r19.xyzw, l(9, 9, 9, 9), r19.xyzw, r16.xyzw
ishl r19.xyzw, r19.xyzw, l(8, 8, 8, 8)
@ -328,18 +337,21 @@ loop
ushr r16.xyzw, r16.xyzw, r17.xyzw
ishl r16.xyzw, r16.xyzw, l(16, 16, 16, 16)
iadd r16.xyzw, r16.xyzw, r18.xyzw
ushr r17.xyzw, r7.xxxx, r10.xyzw
ushr r17.yzw, r15.xxxx, l(0, 2, 4, 6)
mov r17.x, r12.y
and r17.xyzw, r17.xyzw, l(1, 1, 1, 1)
imad r16.xyzw, r17.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000), r16.xyzw
ushr r17.xyzw, r2.yyyy, r10.xyzw
ushr r17.yzw, r11.zzzz, l(0, 2, 4, 6)
mov r17.x, r11.z
and r17.xyzw, r17.xyzw, l(1, 1, 1, 1)
ushr r18.xyzw, r2.yyyy, r15.xyzw
and r18.xyzw, r18.xyzw, l(1, 1, 1, 1)
ubfe r18.xyzw, l(1, 1, 1, 1), l(1, 3, 5, 7), r11.zzzz
imul null, r18.xyzw, r5.yyyy, r18.xyzw
imad r17.xyzw, r17.xyzw, r4.yyyy, r18.xyzw
ushr r18.xyzw, r8.yyyy, r10.xyzw
ushr r18.yzw, r14.yyyy, l(0, 2, 4, 6)
mov r18.x, r13.z
and r19.xyzw, r18.xyzw, l(1, 1, 1, 1)
ubfe r19.xyzw, l(9, 9, 9, 9), r19.xyzw, r17.xyzw
mov r18.x, r14.y
bfi r20.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r18.xyzw, l(10, 10, 10, 10)
ubfe r20.xyzw, l(9, 9, 9, 9), r20.xyzw, r17.xyzw
ishl r20.xyzw, r20.xyzw, l(8, 8, 8, 8)
@ -348,18 +360,21 @@ loop
ushr r17.xyzw, r17.xyzw, r18.xyzw
ishl r17.xyzw, r17.xyzw, l(16, 16, 16, 16)
iadd r17.xyzw, r17.xyzw, r19.xyzw
ushr r18.xyzw, r7.yyyy, r10.xyzw
ushr r18.yzw, r15.yyyy, l(0, 2, 4, 6)
mov r18.x, r12.z
and r18.xyzw, r18.xyzw, l(1, 1, 1, 1)
imad r17.xyzw, r18.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000), r17.xyzw
ushr r18.xyzw, r2.zzzz, r10.xyzw
ushr r18.yzw, r11.wwww, l(0, 2, 4, 6)
mov r18.x, r11.w
and r18.xyzw, r18.xyzw, l(1, 1, 1, 1)
ushr r19.xyzw, r2.zzzz, r15.xyzw
and r19.xyzw, r19.xyzw, l(1, 1, 1, 1)
ubfe r19.xyzw, l(1, 1, 1, 1), l(1, 3, 5, 7), r11.wwww
imul null, r19.xyzw, r5.zzzz, r19.xyzw
imad r18.xyzw, r18.xyzw, r4.zzzz, r19.xyzw
ushr r19.xyzw, r8.zzzz, r10.xyzw
ushr r19.yzw, r14.zzzz, l(0, 2, 4, 6)
mov r19.x, r13.w
and r20.xyzw, r19.xyzw, l(1, 1, 1, 1)
ubfe r20.xyzw, l(9, 9, 9, 9), r20.xyzw, r18.xyzw
mov r19.x, r14.z
bfi r21.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r19.xyzw, l(10, 10, 10, 10)
ubfe r21.xyzw, l(9, 9, 9, 9), r21.xyzw, r18.xyzw
ishl r21.xyzw, r21.xyzw, l(8, 8, 8, 8)
@ -368,45 +383,46 @@ loop
ushr r18.xyzw, r18.xyzw, r19.xyzw
ishl r18.xyzw, r18.xyzw, l(16, 16, 16, 16)
iadd r18.xyzw, r18.xyzw, r20.xyzw
ushr r19.xyzw, r7.zzzz, r10.xyzw
ushr r19.yzw, r15.zzzz, l(0, 2, 4, 6)
mov r19.x, r12.w
and r19.xyzw, r19.xyzw, l(1, 1, 1, 1)
imad r18.xyzw, r19.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000), r18.xyzw
ushr r19.xyzw, r2.wwww, r10.xyzw
and r19.xyzw, r19.xyzw, l(1, 1, 1, 1)
ushr r15.xyzw, r2.wwww, r15.xyzw
and r15.xyzw, r15.xyzw, l(1, 1, 1, 1)
imul null, r15.xyzw, r5.wwww, r15.xyzw
imad r15.xyzw, r19.xyzw, r4.wwww, r15.xyzw
ushr r19.xyzw, r8.wwww, r10.xyzw
and r20.xyzw, r19.xyzw, l(1, 1, 1, 1)
ubfe r20.xyzw, l(9, 9, 9, 9), r20.xyzw, r15.xyzw
bfi r21.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r19.xyzw, l(10, 10, 10, 10)
ubfe r21.xyzw, l(9, 9, 9, 9), r21.xyzw, r15.xyzw
ishl r21.xyzw, r21.xyzw, l(8, 8, 8, 8)
iadd r20.xyzw, r20.xyzw, r21.xyzw
bfi r19.xyzw, l(2, 2, 2, 2), l(0, 0, 0, 0), r19.xyzw, l(20, 20, 20, 20)
ushr r15.xyzw, r15.xyzw, r19.xyzw
ishl r15.xyzw, r15.xyzw, l(16, 16, 16, 16)
iadd r15.xyzw, r15.xyzw, r20.xyzw
ushr r10.xyzw, r7.wwww, r10.xyzw
and r10.xyzw, r10.xyzw, l(1, 1, 1, 1)
imad r10.xyzw, r10.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000), r15.xyzw
movc r11.xyzw, r1.xxxx, r16.xyzw, r11.xyzw
store_raw U0[0].xyzw, r9.x, r11.xyzw
iadd r11.xyz, r9.xxxx, l(16, 32, 48, 0)
movc r12.xyzw, r1.yyyy, r17.xyzw, r12.xyzw
store_raw U0[0].xyzw, r11.x, r12.xyzw
movc r12.xyzw, r1.zzzz, r18.xyzw, r13.xyzw
store_raw U0[0].xyzw, r11.y, r12.xyzw
movc r10.xyzw, r1.wwww, r10.xyzw, r14.xyzw
store_raw U0[0].xyzw, r11.z, r10.xyzw
ushr r11.yzw, r11.xxxx, l(0, 2, 4, 6)
and r19.xyzw, r11.xyzw, l(1, 1, 1, 1)
ubfe r11.xyzw, l(1, 1, 1, 1), l(1, 3, 5, 7), r11.xxxx
imul null, r11.xyzw, r5.wwww, r11.xyzw
imad r11.xyzw, r19.xyzw, r4.wwww, r11.xyzw
ushr r13.yzw, r14.wwww, l(0, 2, 4, 6)
and r19.xyzw, r13.xyzw, l(1, 1, 1, 1)
ubfe r19.xyzw, l(9, 9, 9, 9), r19.xyzw, r11.xyzw
mov r13.x, r14.w
bfi r14.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r13.xyzw, l(10, 10, 10, 10)
ubfe r14.xyzw, l(9, 9, 9, 9), r14.xyzw, r11.xyzw
ishl r14.xyzw, r14.xyzw, l(8, 8, 8, 8)
iadd r14.xyzw, r14.xyzw, r19.xyzw
bfi r13.xyzw, l(2, 2, 2, 2), l(0, 0, 0, 0), r13.xyzw, l(20, 20, 20, 20)
ushr r11.xyzw, r11.xyzw, r13.xyzw
ishl r11.xyzw, r11.xyzw, l(16, 16, 16, 16)
iadd r11.xyzw, r11.xyzw, r14.xyzw
ushr r12.yzw, r15.wwww, l(0, 2, 4, 6)
and r12.xyzw, r12.xyzw, l(1, 1, 1, 1)
imad r11.xyzw, r12.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000), r11.xyzw
movc r8.xyzw, r1.xxxx, r16.xyzw, r8.xyzw
store_raw U0[0].xyzw, r6.x, r8.xyzw
iadd r8.xyz, r6.xxxx, l(16, 32, 48, 0)
movc r9.xyzw, r1.yyyy, r17.xyzw, r9.xyzw
store_raw U0[0].xyzw, r8.x, r9.xyzw
movc r9.xyzw, r1.zzzz, r18.xyzw, r10.xyzw
store_raw U0[0].xyzw, r8.y, r9.xyzw
movc r7.xyzw, r1.wwww, r11.xyzw, r7.xyzw
store_raw U0[0].xyzw, r8.z, r7.xyzw
iadd r0.w, r0.w, l(1)
uge r9.z, r0.w, r0.z
if_nz r9.z
uge r6.z, r0.w, r0.z
if_nz r6.z
ret
endif
iadd r9.x, r9.x, CB0[0][0].w
iadd r9.y, r9.y, l(1)
iadd r6.x, r6.x, CB0[0][0].w
iadd r6.y, r6.y, l(1)
endloop
ret
// Approximately 360 instruction slots used
// Approximately 376 instruction slots used

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,505 @@
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//
// Buffer Definitions:
//
// cbuffer XeTextureCopyConstants
// {
//
// 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
//
// }
//
//
// Resource Bindings:
//
// 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
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[0:0][4], immediateIndexed, space=0
dcl_resource_raw T0[0:0], space=0
dcl_uav_raw U0[0:0], space=0
dcl_input vThreadID.xyz
dcl_temps 25
dcl_thread_group 8, 32, 1
ishl r0.x, vThreadID.x, l(2)
mov r0.yz, vThreadID.yyzy
uge r1.xyz, r0.xyzx, CB0[0][2].xyzx
or r0.w, r1.y, r1.x
or r0.w, r1.z, r0.w
if_nz r0.w
ret
endif
iadd r1.xyz, r0.xyzx, CB0[0][3].xyzx
ieq r0.z, CB0[0][0].y, l(-1)
if_nz r0.z
if_nz CB0[0][1].w
iadd r2.xyzw, r1.xxxx, l(0, 1, 2, 3)
iadd r0.zw, CB0[0][2].yyyx, l(0, 0, 31, 31)
ushr r3.xyz, r1.zyyz, l(2, 4, 3, 0)
ushr r0.zw, r0.zzzw, l(0, 0, 4, 5)
and r0.z, r0.z, l(0x0ffffffe)
imad r0.z, r3.x, r0.z, r3.y
iadd r1.w, r3.z, r3.x
bfi r3.x, l(1), l(1), r1.w, l(0)
ushr r4.xyzw, r2.xyzw, l(3, 3, 3, 3)
iadd r3.xyzw, r3.xxxx, r4.xyzw
bfi r3.xyzw, l(2, 2, 2, 2), l(1, 1, 1, 1), r3.xyzw, l(0, 0, 0, 0)
bfi r3.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r1.wwww, r3.xyzw
ishl r1.w, r1.y, l(12)
and r1.w, r1.w, l(0x00006000)
bfi r4.xyzw, l(3, 3, 3, 3), l(10, 10, 10, 10), r2.xyzw, r1.wwww
ushr r4.xyzw, r4.xyzw, l(6, 6, 6, 6)
ushr r2.xyzw, r2.xyzw, l(5, 5, 5, 5)
imad r2.xyzw, r0.zzzz, r0.wwww, r2.xyzw
bfi r5.xyzw, l(18, 18, 18, 18), l(12, 12, 12, 12), r2.xyzw, l(0, 0, 0, 0)
imad r5.xyzw, r4.xyzw, l(2, 2, 2, 2), r5.xyzw
bfi r5.xyzw, l(2, 2, 2, 2), l(10, 10, 10, 10), r1.zzzz, r5.xyzw
bfi r0.z, l(1), l(4), r1.y, l(0)
iadd r6.xyzw, r5.xyzw, r0.zzzz
ubfe r5.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r5.xyzw
and r7.xyzw, r3.xyzw, l(6, 6, 6, 6)
bfi r3.xyzw, l(1, 1, 1, 1), l(8, 8, 8, 8), r3.xyzw, l(0, 0, 0, 0)
imad r3.xyzw, r5.xyzw, l(32, 32, 32, 32), r3.xyzw
imad r3.xyzw, r7.xyzw, l(4, 4, 4, 4), r3.xyzw
bfi r2.xyzw, l(18, 18, 18, 18), l(15, 15, 15, 15), r2.xyzw, l(0, 0, 0, 0)
imad r2.xyzw, r4.xyzw, l(16, 16, 16, 16), r2.xyzw
bfi r2.xyzw, l(2, 2, 2, 2), l(13, 13, 13, 13), r1.zzzz, r2.xyzw
imad r2.xyzw, r0.zzzz, l(8, 8, 8, 8), r2.xyzw
bfi r2.xyzw, l(9, 9, 9, 9), l(3, 3, 3, 3), r3.xyzw, r2.xyzw
bfi r2.xyzw, l(6, 6, 6, 6), l(0, 0, 0, 0), r6.xyzw, r2.xyzw
else
iadd r3.xyzw, r1.xxxx, l(0, 1, 2, 3)
ushr r4.xyzw, r3.xyzw, l(5, 5, 5, 5)
ushr r0.zw, r1.yyyy, l(0, 0, 5, 2)
iadd r1.w, CB0[0][2].x, l(31)
ushr r1.w, r1.w, l(5)
imad r4.xyzw, r0.zzzz, r1.wwww, r4.xyzw
ishl r0.z, r1.y, l(7)
and r5.xy, r0.zzzz, l(1792, 2048, 0, 0)
bfi r6.xyzw, l(3, 3, 3, 3), l(5, 5, 5, 5), r3.xyzw, r5.xxxx
bfi r6.xyzw, l(21, 21, 21, 21), l(11, 11, 11, 11), r4.xyzw, r6.xyzw
bfi r0.z, l(1), l(4), r1.y, l(0)
iadd r6.xyzw, r6.xyzw, r0.zzzz
ishl r5.xz, r5.xxxx, l(3, 0, 2, 0)
bfi r7.xyzw, l(3, 3, 3, 3), l(8, 8, 8, 8), r3.xyzw, r5.xxxx
bfi r7.xyzw, l(21, 21, 21, 21), l(14, 14, 14, 14), r4.xyzw, r7.xyzw
imad r7.xyzw, r0.zzzz, l(8, 8, 8, 8), r7.xyzw
bfi r7.xyzw, l(12, 12, 12, 12), l(0, 0, 0, 0), r5.yyyy, r7.xyzw
bfi r5.xyzw, l(3, 3, 3, 3), l(7, 7, 7, 7), r3.xyzw, r5.zzzz
bfi r4.xyzw, l(21, 21, 21, 21), l(13, 13, 13, 13), r4.xyzw, r5.xyzw
imad r4.xyzw, r0.zzzz, l(4, 4, 4, 4), r4.xyzw
and r4.xyzw, r4.xyzw, l(1792, 1792, 1792, 1792)
iadd r4.xyzw, r7.xyzw, r4.xyzw
ushr r3.xyzw, r3.xyzw, l(3, 3, 3, 3)
and r0.z, r0.w, l(2)
iadd r3.xyzw, r0.zzzz, r3.xyzw
bfi r3.xyzw, l(2, 2, 2, 2), l(6, 6, 6, 6), r3.xyzw, l(0, 0, 0, 0)
iadd r3.xyzw, r4.xyzw, r3.xyzw
bfi r2.xyzw, l(6, 6, 6, 6), l(0, 0, 0, 0), r6.xyzw, r3.xyzw
endif
else
ishl r0.z, r1.x, l(4)
iadd r0.w, CB0[0][2].y, l(31)
and r0.w, r0.w, l(-32)
imad r0.w, r1.z, r0.w, r1.y
imad r0.z, r0.w, CB0[0][0].y, r0.z
iadd r2.xyzw, r0.zzzz, l(0, 16, 32, 48)
endif
iadd r1.xyzw, r2.xyzw, CB0[0][0].xxxx
ld_raw r2.xyzw, r1.x, T0[0].wxyz
ld_raw r3.xyzw, r1.y, T0[0].xyzw
ld_raw r4.xyzw, r1.z, T0[0].xyzw
ld_raw r1.xyzw, r1.w, T0[0].xyzw
ushr r0.z, CB0[0][2].w, l(1)
xor r0.z, r0.z, CB0[0][2].w
and r0.z, r0.z, l(1)
if_nz r0.z
ishl r5.xyzw, r2.yzwx, l(8, 8, 8, 8)
and r5.xyzw, r5.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r6.xyzw, r2.yzwx, l(8, 8, 8, 8)
and r6.xyzw, r6.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r2.xyzw, r5.wxyz, r6.wxyz
endif
and r0.w, CB0[0][2].w, l(2)
if_nz r0.w
ushr r5.xyzw, r2.yzwx, l(16, 16, 16, 16)
bfi r2.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r2.xyzw, r5.wxyz
mov r5.x, r2.y
mov r6.x, r2.z
mov r7.x, r2.w
else
mov r5.x, r2.y
mov r6.x, r2.z
mov r7.x, r2.w
endif
if_nz r0.z
ishl r8.xyzw, r3.xyzw, l(8, 8, 8, 8)
and r8.xyzw, r8.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r9.xyzw, r3.xyzw, l(8, 8, 8, 8)
and r9.xyzw, r9.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r3.xyzw, r8.xyzw, r9.xyzw
endif
if_nz r0.w
ushr r8.xyzw, r3.xyzw, l(16, 16, 16, 16)
bfi r8.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r3.xyzw, r8.xyzw
mov r5.y, r8.x
mov r6.y, r8.y
mov r7.y, r8.z
mov r2.y, r8.w
else
mov r5.y, r3.x
mov r6.y, r3.y
mov r7.y, r3.z
mov r2.y, r3.w
endif
if_nz r0.z
ishl r3.xyzw, r4.xyzw, l(8, 8, 8, 8)
and r3.xyzw, r3.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r8.xyzw, r4.xyzw, l(8, 8, 8, 8)
and r8.xyzw, r8.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r4.xyzw, r3.xyzw, r8.xyzw
endif
if_nz r0.w
ushr r3.xyzw, r4.xyzw, l(16, 16, 16, 16)
bfi r3.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r4.xyzw, r3.xyzw
mov r5.z, r3.x
mov r6.z, r3.y
mov r7.z, r3.z
mov r2.z, r3.w
else
mov r5.z, r4.x
mov r6.z, r4.y
mov r7.z, r4.z
mov r2.z, r4.w
endif
if_nz r0.z
ishl r3.xyzw, r1.xyzw, l(8, 8, 8, 8)
and r3.xyzw, r3.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
ushr r4.xyzw, r1.xyzw, l(8, 8, 8, 8)
and r4.xyzw, r4.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
iadd r1.xyzw, r3.xyzw, r4.xyzw
endif
if_nz r0.w
ushr r3.xyzw, r1.xyzw, l(16, 16, 16, 16)
bfi r3.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r1.xyzw, r3.xyzw
mov r5.w, r3.x
mov r6.w, r3.y
mov r7.w, r3.z
mov r2.w, r3.w
else
mov r5.w, r1.x
mov r6.w, r1.y
mov r7.w, r1.z
mov r2.w, r1.w
endif
ishl r1.xyzw, r2.xyzw, l(1, 1, 1, 1)
and r1.xyzw, r1.xyzw, l(0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa)
ushr r2.xyzw, r2.xyzw, l(1, 1, 1, 1)
and r2.xyzw, r2.xyzw, l(0x55555555, 0x55555555, 0x55555555, 0x55555555)
iadd r1.xyzw, r1.xyzw, r2.xyzw
ushr r2.xyzw, r1.xyzw, l(1, 1, 1, 1)
and r2.xyzw, r2.xyzw, l(0x55555555, 0x55555555, 0x55555555, 0x55555555)
xor r1.xyzw, r1.xyzw, r2.xyzw
ushr r2.xyzw, r5.xyzw, l(16, 16, 16, 16)
bfi r3.xyzw, l(8, 8, 8, 8), l(16, 16, 16, 16), r6.xyzw, l(0, 0, 0, 0)
iadd r2.xyzw, r2.xyzw, r3.xyzw
ushr r3.xyzw, r6.xyzw, l(8, 8, 8, 8)
and r4.xyzw, r2.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
ushr r6.xyzw, r2.xyzw, l(1, 1, 1, 1)
and r8.xyzw, r6.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r9.xyzw, r2.xyzw, r6.xyzw
ushr r10.xyzw, r2.xyzw, l(2, 2, 2, 2)
and r11.xyzw, r10.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r9.xyzw, r9.xyzw, r10.xyzw
and r9.xyzw, r9.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
xor r9.xyzw, r9.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
not r8.xyzw, r8.xyzw
and r8.xyzw, r4.xyzw, r8.xyzw
not r10.xyzw, r11.xyzw
and r8.xyzw, r8.xyzw, r10.xyzw
or r9.xyzw, r2.xyzw, r9.xyzw
iadd r9.xyzw, r9.xyzw, l(0xffdb6db7, 0xffdb6db7, 0xffdb6db7, 0xffdb6db7)
or r9.xyzw, r8.xyzw, r9.xyzw
ishl r10.xyzw, r8.xyzw, l(1, 1, 1, 1)
or r10.xyzw, r9.xyzw, r10.xyzw
ishl r8.xyzw, r8.xyzw, l(2, 2, 2, 2)
or r10.xyzw, r8.xyzw, r10.xyzw
and r11.xyzw, r3.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
ushr r12.xyzw, r3.xyzw, l(1, 1, 1, 1)
and r13.xyzw, r12.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r14.xyzw, r3.xyzw, r12.xyzw
ushr r15.xyzw, r3.xyzw, l(2, 2, 2, 2)
and r16.xyzw, r15.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
or r14.xyzw, r14.xyzw, r15.xyzw
and r14.xyzw, r14.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
xor r14.xyzw, r14.xyzw, l(0x00249249, 0x00249249, 0x00249249, 0x00249249)
not r13.xyzw, r13.xyzw
and r13.xyzw, r11.xyzw, r13.xyzw
not r15.xyzw, r16.xyzw
and r13.xyzw, r13.xyzw, r15.xyzw
or r14.xyzw, r3.xyzw, r14.xyzw
iadd r14.xyzw, r14.xyzw, l(0xffdb6db7, 0xffdb6db7, 0xffdb6db7, 0xffdb6db7)
or r14.xyzw, r13.xyzw, r14.xyzw
ishl r15.xyzw, r13.xyzw, l(1, 1, 1, 1)
or r15.xyzw, r14.xyzw, r15.xyzw
ishl r13.xyzw, r13.xyzw, l(2, 2, 2, 2)
or r15.xyzw, r13.xyzw, r15.xyzw
and r2.xyzw, r2.xyzw, r6.xyzw
and r2.xyzw, r2.xyzw, l(0x00492492, 0x00492492, 0x00492492, 0x00492492)
ishl r6.xyzw, r2.xyzw, l(1, 1, 1, 1)
ushr r16.xyzw, r2.xyzw, l(1, 1, 1, 1)
iadd r2.xyzw, r2.xyzw, r6.xyzw
iadd r2.xyzw, r2.xyzw, r16.xyzw
iadd r4.xyzw, r4.xyzw, l(0x00db6db6, 0x00db6db6, 0x00db6db6, 0x00db6db6)
and r4.xyzw, r2.xyzw, r4.xyzw
or r6.xyzw, r8.xyzw, r9.xyzw
not r2.xyzw, r2.xyzw
and r2.xyzw, r2.xyzw, r6.xyzw
or r2.xyzw, r4.xyzw, r2.xyzw
and r3.xyzw, r3.xyzw, r12.xyzw
and r3.xyzw, r3.xyzw, l(0x00492492, 0x00492492, 0x00492492, 0x00492492)
ishl r4.xyzw, r3.xyzw, l(1, 1, 1, 1)
ushr r6.xyzw, r3.xyzw, l(1, 1, 1, 1)
iadd r3.xyzw, r3.xyzw, r4.xyzw
iadd r3.xyzw, r3.xyzw, r6.xyzw
iadd r4.xyzw, r11.xyzw, l(0x00db6db6, 0x00db6db6, 0x00db6db6, 0x00db6db6)
and r4.xyzw, r3.xyzw, r4.xyzw
or r6.xyzw, r13.xyzw, r14.xyzw
not r3.xyzw, r3.xyzw
and r3.xyzw, r3.xyzw, r6.xyzw
or r3.xyzw, r4.xyzw, r3.xyzw
bfi r4.xyzw, l(5, 5, 5, 5), l(23, 23, 23, 23), r7.xyzw, l(0, 0, 0, 0)
ishl r6.xyzw, r7.xyzw, l(18, 18, 18, 18)
and r6.xyzw, r6.xyzw, l(0x00700000, 0x00700000, 0x00700000, 0x00700000)
iadd r4.xyzw, r4.xyzw, r6.xyzw
ishl r6.xyzw, r7.xyzw, l(7, 7, 7, 7)
and r8.xyzw, r6.xyzw, l(0x0003f000, 0x0003f000, 0x0003f000, 0x0003f000)
iadd r4.xyzw, r4.xyzw, r8.xyzw
ishl r8.xyzw, r7.xyzw, l(1, 1, 1, 1)
and r8.xyzw, r8.xyzw, l(3072, 3072, 3072, 3072)
iadd r4.xyzw, r4.xyzw, r8.xyzw
ushr r8.xyzw, r7.xyzw, l(8, 8, 8, 8)
and r8.xyzw, r8.xyzw, l(248, 248, 248, 248)
iadd r4.xyzw, r4.xyzw, r8.xyzw
ubfe r8.xyzw, l(3, 3, 3, 3), l(13, 13, 13, 13), r7.xyzw
iadd r4.xyzw, r4.xyzw, r8.xyzw
and r6.xyzw, r6.xyzw, l(0x0f800000, 0x0f800000, 0x0f800000, 0x0f800000)
ishl r8.xyzw, r7.xyzw, l(2, 2, 2, 2)
and r8.xyzw, r8.xyzw, l(0x00700000, 0x00700000, 0x00700000, 0x00700000)
iadd r6.xyzw, r6.xyzw, r8.xyzw
ushr r8.xyzw, r7.xyzw, l(9, 9, 9, 9)
and r8.xyzw, r8.xyzw, l(0x0003f000, 0x0003f000, 0x0003f000, 0x0003f000)
iadd r6.xyzw, r6.xyzw, r8.xyzw
ushr r8.xyzw, r7.xyzw, l(15, 15, 15, 15)
and r8.xyzw, r8.xyzw, l(3072, 3072, 3072, 3072)
iadd r6.xyzw, r6.xyzw, r8.xyzw
ushr r8.xyzw, r7.xyzw, l(24, 24, 24, 24)
and r8.xyzw, r8.xyzw, l(248, 248, 248, 248)
iadd r6.xyzw, r6.xyzw, r8.xyzw
ushr r7.xyzw, r7.xyzw, l(29, 29, 29, 29)
iadd r6.xyzw, r6.xyzw, r7.xyzw
and r7.xyzw, r5.xyzw, l(255, 255, 255, 255)
ubfe r5.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r5.xyzw
ishl r0.xy, r0.xyxx, l(2, 2, 0, 0)
ishl r0.x, r0.x, l(2)
imad r0.z, vThreadID.z, CB0[0][1].y, r0.y
imad r0.x, r0.z, CB0[0][0].w, r0.x
iadd r0.x, r0.x, CB0[0][0].z
uge r8.xyzw, r5.xyzw, r7.xyzw
movc r9.xyzw, r8.xyzw, l(5,5,5,5), l(7,7,7,7)
movc r11.xyzw, r8.xyzw, l(2925,2925,2925,2925), l(4095,4095,4095,4095)
mov r0.z, CB0[0][1].y
mov r0.w, r0.y
mov r12.x, r0.x
mov r12.y, l(0)
loop
uge r12.z, r12.y, l(4)
breakc_nz r12.z
ishl r12.z, r12.y, l(3)
ushr r13.xyzw, r1.wxyz, r12.zzzz
not r14.xyzw, r13.xyzw
ushr r16.yzw, r14.yyyy, l(0, 2, 4, 6)
mov r16.x, r14.y
and r16.xyzw, r16.xyzw, l(3, 3, 3, 3)
ushr r17.yzw, r13.yyyy, l(0, 2, 4, 6)
mov r17.x, r13.y
and r17.xyzw, r17.xyzw, l(3, 3, 3, 3)
imul null, r17.xyzw, r6.xxxx, r17.xyzw
imad r16.xyzw, r16.xyzw, r4.xxxx, r17.xyzw
and r17.xyzw, r16.xyzw, l(1023, 1023, 1023, 1023)
udiv r17.xyzw, null, r17.xyzw, l(3, 3, 3, 3)
ubfe r18.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r16.xyzw
udiv r18.xyzw, null, r18.xyzw, l(3, 3, 3, 3)
ishl r18.xyzw, r18.xyzw, l(8, 8, 8, 8)
or r17.xyzw, r17.xyzw, r18.xyzw
ushr r16.xyzw, r16.xyzw, l(20, 20, 20, 20)
udiv r16.xyzw, null, r16.xyzw, l(3, 3, 3, 3)
ishl r16.xyzw, r16.xyzw, l(16, 16, 16, 16)
or r16.xyzw, r16.xyzw, r17.xyzw
ushr r17.yzw, r14.zzzz, l(0, 2, 4, 6)
mov r17.x, r14.z
and r17.xyzw, r17.xyzw, l(3, 3, 3, 3)
ushr r18.yzw, r13.zzzz, l(0, 2, 4, 6)
mov r18.x, r13.z
and r18.xyzw, r18.xyzw, l(3, 3, 3, 3)
imul null, r18.xyzw, r6.yyyy, r18.xyzw
imad r17.xyzw, r17.xyzw, r4.yyyy, r18.xyzw
and r18.xyzw, r17.xyzw, l(1023, 1023, 1023, 1023)
udiv r18.xyzw, null, r18.xyzw, l(3, 3, 3, 3)
ubfe r19.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r17.xyzw
udiv r19.xyzw, null, r19.xyzw, l(3, 3, 3, 3)
ishl r19.xyzw, r19.xyzw, l(8, 8, 8, 8)
or r18.xyzw, r18.xyzw, r19.xyzw
ushr r17.xyzw, r17.xyzw, l(20, 20, 20, 20)
udiv r17.xyzw, null, r17.xyzw, l(3, 3, 3, 3)
ishl r17.xyzw, r17.xyzw, l(16, 16, 16, 16)
or r17.xyzw, r17.xyzw, r18.xyzw
ushr r18.yzw, r14.wwww, l(0, 2, 4, 6)
mov r18.x, r14.w
and r18.xyzw, r18.xyzw, l(3, 3, 3, 3)
ushr r19.yzw, r13.wwww, l(0, 2, 4, 6)
mov r19.x, r13.w
and r19.xyzw, r19.xyzw, l(3, 3, 3, 3)
imul null, r19.xyzw, r6.zzzz, r19.xyzw
imad r18.xyzw, r18.xyzw, r4.zzzz, r19.xyzw
and r19.xyzw, r18.xyzw, l(1023, 1023, 1023, 1023)
udiv r19.xyzw, null, r19.xyzw, l(3, 3, 3, 3)
ubfe r20.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r18.xyzw
udiv r20.xyzw, null, r20.xyzw, l(3, 3, 3, 3)
ishl r20.xyzw, r20.xyzw, l(8, 8, 8, 8)
or r19.xyzw, r19.xyzw, r20.xyzw
ushr r18.xyzw, r18.xyzw, l(20, 20, 20, 20)
udiv r18.xyzw, null, r18.xyzw, l(3, 3, 3, 3)
ishl r18.xyzw, r18.xyzw, l(16, 16, 16, 16)
or r18.xyzw, r18.xyzw, r19.xyzw
ushr r14.yzw, r14.xxxx, l(0, 2, 4, 6)
and r14.xyzw, r14.xyzw, l(3, 3, 3, 3)
ushr r13.yzw, r13.xxxx, l(0, 2, 4, 6)
and r13.xyzw, r13.xyzw, l(3, 3, 3, 3)
imul null, r13.xyzw, r6.wwww, r13.xyzw
imad r13.xyzw, r14.xyzw, r4.wwww, r13.xyzw
and r14.xyzw, r13.xyzw, l(1023, 1023, 1023, 1023)
udiv r14.xyzw, null, r14.xyzw, l(3, 3, 3, 3)
ubfe r19.xyzw, l(10, 10, 10, 10), l(10, 10, 10, 10), r13.xyzw
udiv r19.xyzw, null, r19.xyzw, l(3, 3, 3, 3)
ishl r19.xyzw, r19.xyzw, l(8, 8, 8, 8)
or r14.xyzw, r14.xyzw, r19.xyzw
ushr r13.xyzw, r13.xyzw, l(20, 20, 20, 20)
udiv r13.xyzw, null, r13.xyzw, l(3, 3, 3, 3)
ishl r13.xyzw, r13.xyzw, l(16, 16, 16, 16)
or r13.xyzw, r13.xyzw, r14.xyzw
ult r12.z, r12.y, l(2)
movc r14.xyzw, r12.zzzz, r10.xyzw, r15.xyzw
and r12.w, r12.y, l(1)
imul null, r12.w, r12.w, l(12)
ushr r14.xyzw, r14.xyzw, r12.wwww
movc r19.xyzw, r12.zzzz, r2.xyzw, r3.xyzw
ushr r19.xyzw, r19.xyzw, r12.wwww
movc r14.xyzw, r8.xyzw, r19.xyzw, r14.xyzw
ushr r20.xyzw, r19.xyzw, l(1, 1, 1, 1)
and r20.xyzw, r19.xyzw, r20.xyzw
and r20.xyzw, r8.xyzw, r20.xyzw
and r20.xyzw, r20.xyzw, l(1170, 1170, 1170, 1170)
ishl r21.xyzw, r20.xyzw, l(1, 1, 1, 1)
ushr r22.xyzw, r20.xyzw, l(1, 1, 1, 1)
iadd r20.xyzw, r20.xyzw, r21.xyzw
iadd r20.xyzw, r20.xyzw, r22.xyzw
not r21.xyzw, r20.xyzw
and r14.xyzw, r14.xyzw, r21.xyzw
iadd r22.xyzw, r11.xyzw, -r14.xyzw
and r21.xyzw, r21.xyzw, r22.xyzw
and r22.xyzw, r21.xyzw, l(7, 7, 7, 7)
and r23.xyzw, r14.xyzw, l(7, 7, 7, 7)
imul null, r23.xyzw, r5.xyzw, r23.xyzw
imad r22.xyzw, r7.xyzw, r22.xyzw, r23.xyzw
udiv r22.xyzw, null, r22.xyzw, r9.xyzw
ubfe r23.xyzw, l(3, 3, 3, 3), l(3, 3, 3, 3), r21.xyzw
ubfe r24.xyzw, l(3, 3, 3, 3), l(3, 3, 3, 3), r14.xyzw
imul null, r24.xyzw, r5.xyzw, r24.xyzw
imad r23.xyzw, r7.xyzw, r23.xyzw, r24.xyzw
udiv r23.xyzw, null, r23.xyzw, r9.xyzw
ishl r23.xyzw, r23.xyzw, l(8, 8, 8, 8)
or r22.xyzw, r22.xyzw, r23.xyzw
ubfe r23.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r21.xyzw
ubfe r24.xyzw, l(3, 3, 3, 3), l(6, 6, 6, 6), r14.xyzw
imul null, r24.xyzw, r5.xyzw, r24.xyzw
imad r23.xyzw, r7.xyzw, r23.xyzw, r24.xyzw
udiv r23.xyzw, null, r23.xyzw, r9.xyzw
ishl r23.xyzw, r23.xyzw, l(16, 16, 16, 16)
or r22.xyzw, r22.xyzw, r23.xyzw
ubfe r21.xyzw, l(3, 3, 3, 3), l(9, 9, 9, 9), r21.xyzw
ubfe r14.xyzw, l(3, 3, 3, 3), l(9, 9, 9, 9), r14.xyzw
imul null, r14.xyzw, r5.xyzw, r14.xyzw
imad r14.xyzw, r7.xyzw, r21.xyzw, r14.xyzw
udiv r14.xyzw, null, r14.xyzw, r9.xyzw
ishl r14.xyzw, r14.xyzw, l(24, 24, 24, 24)
or r14.xyzw, r14.xyzw, r22.xyzw
and r19.xyzw, r19.xyzw, r20.xyzw
ishl r20.xyzw, r19.xyzw, l(5, 5, 5, 5)
and r20.xyzw, r20.xyzw, l(256, 256, 256, 256)
bfi r20.xyzw, l(1, 1, 1, 1), l(0, 0, 0, 0), r19.xyzw, r20.xyzw
ishl r21.xyzw, r19.xyzw, l(10, 10, 10, 10)
and r21.xyzw, r21.xyzw, l(0x00010000, 0x00010000, 0x00010000, 0x00010000)
iadd r20.xyzw, r20.xyzw, r21.xyzw
ishl r19.xyzw, r19.xyzw, l(15, 15, 15, 15)
and r19.xyzw, r19.xyzw, l(0x01000000, 0x01000000, 0x01000000, 0x01000000)
iadd r19.xyzw, r19.xyzw, r20.xyzw
imad r14.xyzw, r19.xyzw, l(255, 255, 255, 255), r14.xyzw
ishl r19.xyz, r14.xxxx, l(24, 16, 8, 0)
mov r19.w, r14.x
and r19.xyzw, r19.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r16.xyzw, r16.xyzw, r19.xyzw
store_raw U0[0].xyzw, r12.x, r16.xyzw
iadd r16.xyz, r12.xxxx, l(16, 32, 48, 0)
ishl r19.xyz, r14.yyyy, l(24, 16, 8, 0)
mov r19.w, r14.y
and r19.xyzw, r19.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r17.xyzw, r17.xyzw, r19.xyzw
store_raw U0[0].xyzw, r16.x, r17.xyzw
ishl r17.xyz, r14.zzzz, l(24, 16, 8, 0)
mov r17.w, r14.z
and r17.xyzw, r17.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r17.xyzw, r17.xyzw, r18.xyzw
store_raw U0[0].xyzw, r16.y, r17.xyzw
ishl r14.xyz, r14.wwww, l(24, 16, 8, 0)
and r14.xyzw, r14.xyzw, l(0xff000000, 0xff000000, 0xff000000, 0xff000000)
or r13.xyzw, r13.xyzw, r14.xyzw
store_raw U0[0].xyzw, r16.z, r13.xyzw
iadd r0.w, r0.w, l(1)
uge r12.z, r0.w, r0.z
if_nz r12.z
ret
endif
iadd r12.x, r12.x, CB0[0][0].w
iadd r12.y, r12.y, l(1)
endloop
ret
// Approximately 453 instruction slots used

View File

@ -109,14 +109,13 @@ void XeDXTColorEndpointsTo8In10(uint4 rgb_565, out uint4 rgb_10b_low,
// Gets the colors of one row of four DXT opaque blocks. Endpoint colors can be
// obtained using XeDXTColorEndpointsTo8In10 (8 bits with 2 bits of free space
// between each), weights can be obtained using XeDXTHighColorWeights. Alpha is
// set to 0 in the result. weights_shift is 0 for the first row, 8 for the
// second, 16 for the third, and 24 for the fourth.
void XeDXTFourBlocksRowToRGB8(uint4 rgb_10b_low, uint4 rgb_10b_high,
uint4 weights_high, uint weights_shift,
out uint4 row_0, out uint4 row_1,
out uint4 row_2, out uint4 row_3) {
// set to 0 in the result. Weights must be shifted right by 8 * row index before
// calling.
void XeDXTFourBlocksRowToRGB8(
uint4 rgb_10b_low, uint4 rgb_10b_high, uint4 weights_high, out uint4 row_0,
out uint4 row_1, out uint4 row_2, out uint4 row_3) {
uint4 weights_low = ~weights_high;
uint4 weights_shifts = weights_shift + uint4(0u, 2u, 4u, 6u);
const uint4 weights_shifts = uint4(0u, 2u, 4u, 6u);
uint4 block_row_10b_3x =
((weights_low.xxxx >> weights_shifts) & 3u) * rgb_10b_low.x +
((weights_high.xxxx >> weights_shifts) & 3u) * rgb_10b_high.x;
@ -145,7 +144,7 @@ void XeDXTFourBlocksRowToRGB8(uint4 rgb_10b_low, uint4 rgb_10b_high,
// & 0x249249 = bits 0 of 24 bits of DXT5 alpha codes.
// & 0x492492 = bits 1 of 24 bits of DXT5 alpha codes.
// & 0x6DB6DB = bits 2 of 24 bits of DXT5 alpha codes.
// & 0x924924 = bits 2 of 24 bits of DXT5 alpha codes.
// Sorts half (24 bits) of the codes of four DXT5 alpha blocks so they can be
// used as weights for the second endpoint, from 0 to 7, in alpha0 > alpha1
@ -155,12 +154,11 @@ uint4 XeDXT5High8StepAlphaWeights(uint4 codes_24b) {
// weights from 6:1 to 1:6. Need to make 001 111, and subtract 1 from 010 and
// above.
// Whether the bits are 000 (the first endpoint only).
uint4 is_first = ((codes_24b & 0x249249u) & ((codes_24b & 0x492492u) >> 1u) &
((codes_24b & 0x6DB6DBu) >> 2u)) ^ 0x249249u;
uint4 is_first = ((codes_24b & 0x249249u) | ((codes_24b & 0x492492u) >> 1u) |
((codes_24b & 0x924924u) >> 2u)) ^ 0x249249u;
// Whether the bits are 001 (the second endpoint only).
uint4 is_second =
(codes_24b & 0x249249u) & (0x249249u ^
(((codes_24b & 0x492492u) >> 1u) & ((codes_24b & 0x6DB6DBu) >> 2u)));
uint4 is_second = (codes_24b & 0x249249u) & ~((codes_24b & 0x492492u) >> 1u) &
~((codes_24b & 0x924924u) >> 2u);
// Change 000 to 001 so subtracting 1 will result in 0 (and there will never
// be overflow), subtract 1, and if the code was originally 001 (the second
// endpoint only), make it 111.
@ -183,20 +181,19 @@ uint4 XeDXT5High6StepAlphaWeights(uint4 codes_24b) {
// 111 - constant 1.
// Create 3-bit masks (111 or 000) of whether the codes represent 0 or 1
// constants to keep them 110 and 111 later.
uint4 is_constant = (codes_24b & 0x492492u) & ((codes_24b & 0x6DB6DBu) >> 1u);
uint4 is_constant = codes_24b & 0x492492u & ((codes_24b & 0x924924u) >> 1u);
is_constant |= (is_constant << 1u) | (is_constant >> 1u);
// Store the codes for the constants (110 or 111), or 0 if not a constant.
uint4 constant_values =
((codes_24b & 0x249249u) | (0x492492u | 0x6DB6DBu)) & is_constant;
((codes_24b & 0x249249u) | (0x492492u | 0x924924u)) & is_constant;
// Need to make 001 101, and subtract 1 from 010 and above (constants will be
// handled separately later).
// Whether the bits are 000 (the first endpoint only).
uint4 is_first = ((codes_24b & 0x249249u) & ((codes_24b & 0x492492u) >> 1u) &
((codes_24b & 0x6DB6DBu) >> 2u)) ^ 0x249249u;
uint4 is_first = ((codes_24b & 0x249249u) | ((codes_24b & 0x492492u) >> 1u) |
((codes_24b & 0x924924u) >> 2u)) ^ 0x249249u;
// Whether the bits are 001 (the second endpoint only).
uint4 is_second =
(codes_24b & 0x249249u) & (0x249249u ^
(((codes_24b & 0x492492u) >> 1u) & ((codes_24b & 0x6DB6DBu) >> 2u)));
uint4 is_second = (codes_24b & 0x249249u) & ~((codes_24b & 0x492492u) >> 1u) &
~((codes_24b & 0x924924u) >> 2u);
// Change 000 to 001 so subtracting 1 will result in 0 (and there will never
// be overflow), subtract 1, and if the code was originally 001 (the second
// endpoint only), make it 101.
@ -206,4 +203,41 @@ uint4 XeDXT5High6StepAlphaWeights(uint4 codes_24b) {
return (codes_24b & ~is_constant) | constant_values;
}
uint4 XeDXT5Four8StepBlocksRowToA8(uint4 end_low, uint4 end_high,
uint4 weights_8step, uint4 weights_6step) {
// Choose the mode.
bool4 is_6step = end_low <= end_high;
uint4 weights_high = is_6step ? weights_6step : weights_8step;
uint4 weight_max = is_6step ? (5u.xxxx) : (7u.xxxx);
// In the 6-step mode, make a mask for whether the weights are constants.
uint4 is_constant = is_6step ? (weights_6step & 0x492u &
((weights_6step & 0x924u) >> 1u))
: (0u).xxxx;
is_constant |= (is_constant << 1u) | (is_constant >> 1u);
// Get the weights for the first endpoint and remove constant from the
// interpolation (set weights of the endpoints to 0 for them). First need to
// zero the weights of the second endpoint so 6 or 7 won't be subtracted from
// 5 while getting the weights of the first endpoint.
weights_high &= ~is_constant;
uint4 weights_low = ((weight_max * 0x249u) - weights_high) & ~is_constant;
// Interpolate.
uint4 row =
((end_low * (weights_low & 7u) +
end_high * (weights_high & 7u)) / weight_max) |
(((end_low * ((weights_low >> 3u) & 7u) +
end_high * ((weights_high >> 3u) & 7u)) / weight_max) << 8u) |
(((end_low * ((weights_low >> 6u) & 7u) +
end_high * ((weights_high >> 6u) & 7u)) / weight_max) << 16u) |
(((end_low * ((weights_low >> 9u) & 7u) +
end_high * ((weights_high >> 9u) & 7u)) / weight_max) << 24u);
// Get the constant values as 1 bit per pixel separated by 7 bits.
uint4 constant_values = weights_6step & is_constant;
constant_values = (constant_values & 1u) |
((constant_values & (1u << 3u)) << (8u - 3u)) |
((constant_values & (1u << 6u)) << (16u - 6u)) |
((constant_values & (1u << 9u)) << (24u - 9u));
// Add constant 1 where needed.
return row + constant_values * 0xFFu;
}
#endif // XENIA_GPU_D3D12_SHADERS_PIXEL_FORMATS_HLSLI_

View File

@ -15,22 +15,17 @@
// MM NN OO PP
void XeCTX1FourBlocksRowToR8G8(uint4 end_low_rr00gg00, uint4 end_high_rr00gg00,
uint4 weights_high, uint weights_shift,
out uint4 row_01, out uint4 row_23) {
uint4 weights_high, out uint4 row_01,
out uint4 row_23) {
uint4 weights_low = ~weights_high;
uint4 weights_shifts = weights_shift + uint4(0u, 2u, 4u, 6u);
uint4 row_3aaaa =
((weights_low >> weights_shifts.x) & 3u) * end_low_rr00gg00 +
((weights_high >> weights_shifts.x) & 3u) * end_high_rr00gg00;
uint4 row_3bbbb =
((weights_low >> weights_shifts.y) & 3u) * end_low_rr00gg00 +
((weights_high >> weights_shifts.y) & 3u) * end_high_rr00gg00;
uint4 row_3cccc =
((weights_low >> weights_shifts.z) & 3u) * end_low_rr00gg00 +
((weights_high >> weights_shifts.z) & 3u) * end_high_rr00gg00;
uint4 row_3dddd =
((weights_low >> weights_shifts.w) & 3u) * end_low_rr00gg00 +
((weights_high >> weights_shifts.w) & 3u) * end_high_rr00gg00;
uint4 row_3aaaa = (weights_low & 3u) * end_low_rr00gg00 +
(weights_high & 3u) * end_high_rr00gg00;
uint4 row_3bbbb = ((weights_low >> 2u) & 3u) * end_low_rr00gg00 +
((weights_high >> 2u) & 3u) * end_high_rr00gg00;
uint4 row_3cccc = ((weights_low >> 4u) & 3u) * end_low_rr00gg00 +
((weights_high >> 4u) & 3u) * end_high_rr00gg00;
uint4 row_3dddd = ((weights_low >> 6u) & 3u) * end_low_rr00gg00 +
((weights_high >> 6u) & 3u) * end_high_rr00gg00;
uint4 row_half_3acac = uint4(row_3aaaa.xy, row_3cccc.xy).xzyw;
uint4 row_half_3bdbd = uint4(row_3bbbb.xy, row_3dddd.xy).xzyw;
// R0A G0A R0B G0B | R0C G0C R0D G0D | R1A G1A R1B G1B | R1C G1C R1D G1D
@ -85,8 +80,8 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) {
xe_texture_copy_host_pitch, 2u) + xe_texture_copy_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);
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) {

View File

@ -1,12 +1,11 @@
#include "pixel_formats.hlsli"
#include "texture_copy.hlsli"
void XeDXT1FourTransBlocksRowToRGBA8(uint4 rgb_10b_low, uint4 rgb_10b_high,
uint4 weights, uint4 weights_shift,
out uint4 row_0, out uint4 row_1,
out uint4 row_2, out uint4 row_3) {
uint4 weights_shifts_low = weights_shift + uint4(0u, 2u, 4u, 6u);
uint4 weights_shifts_high = weights_shifts_low + 1u;
void XeDXT1FourTransBlocksRowToRGBA8(
uint4 rgb_10b_low, uint4 rgb_10b_high, uint4 weights, out uint4 row_0,
out uint4 row_1, out uint4 row_2, out uint4 row_3) {
const uint4 weights_shifts_low = uint4(0u, 2u, 4u, 6u);
const uint4 weights_shifts_high = uint4(1u, 3u, 5u, 7u);
// Whether the texel is (RGB0+RGB1)/2 - divide the weighted sum by 2 (shift
// right by 1) if it is.
uint4 weights_sums_log2 = weights & ((weights & 0xAAAAAAAAu) >> 1u);
@ -92,17 +91,17 @@ void main(uint3 xe_thread_id : SV_DispatchThreadID) {
xe_texture_copy_host_pitch, 4u) + xe_texture_copy_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, weights_opaque_high,
i * 8u, row_opaque_0, row_opaque_1, row_opaque_2,
row_opaque_3);
XeDXTFourBlocksRowToRGB8(rgb_10b_low, rgb_10b_high,
weights_opaque_high >> (i * 8u), row_opaque_0,
row_opaque_1, row_opaque_2, row_opaque_3);
row_opaque_0 |= 0xFF000000u;
row_opaque_1 |= 0xFF000000u;
row_opaque_2 |= 0xFF000000u;
row_opaque_3 |= 0xFF000000u;
uint4 row_trans_0, row_trans_1, row_trans_2, row_trans_3;
XeDXT1FourTransBlocksRowToRGBA8(rgb_10b_low, rgb_10b_high, weights_trans,
i * 8u, row_trans_0, row_trans_1,
row_trans_2, row_trans_3);
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,
is_trans.x ? row_trans_0 : row_opaque_0);
xe_texture_copy_dest.Store4(texel_offset_host + 16u,

View File

@ -0,0 +1,79 @@
#include "pixel_formats.hlsli"
#include "texture_copy.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)) {
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);
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);
uint4 rgb_codes = uint4(block_0.w, block_1.w, block_2.w, block_3.w);
// Sort the color indices so they can be used as weights for the second
// endpoint.
uint4 rgb_weights_high = XeDXTHighColorWeights(rgb_codes);
// Sort the alpha indices.
uint4 alpha_codes_r01 =
(alpha_blocks_0 >> 16u) | ((alpha_blocks_1 & 0xFFu) << 16u);
uint4 alpha_codes_r23 = alpha_blocks_1 >> 8u;
uint4 alpha_weights_8step_r01 = XeDXT5High8StepAlphaWeights(alpha_codes_r01);
uint4 alpha_weights_8step_r23 = XeDXT5High8StepAlphaWeights(alpha_codes_r23);
uint4 alpha_weights_6step_r01 = XeDXT5High6StepAlphaWeights(alpha_codes_r01);
uint4 alpha_weights_6step_r23 = XeDXT5High6StepAlphaWeights(alpha_codes_r23);
// Get the endpoints for mixing, as 8-bit components in 10-bit sequences.
uint4 rgb_565 = uint4(block_0.z, block_1.z, block_2.z, block_3.z);
uint4 rgb_10b_low, rgb_10b_high;
XeDXTColorEndpointsTo8In10(rgb_565, rgb_10b_low, rgb_10b_high);
// Get the alpha endpoints.
uint4 alpha_end_low = alpha_blocks_0 & 0xFFu;
uint4 alpha_end_high = (alpha_blocks_0 >> 8u) & 0xFFu;
// 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;
for (uint i = 0u; i < 4u; ++i) {
uint4 row_0, row_1, row_2, row_3;
XeDXTFourBlocksRowToRGB8(rgb_10b_low, rgb_10b_high,
rgb_weights_high >> (i * 8u),
row_0, row_1, row_2, row_3);
uint4 alpha_row = XeDXT5Four8StepBlocksRowToA8(
alpha_end_low, alpha_end_high,
(i < 2u ? alpha_weights_8step_r01 : alpha_weights_8step_r23) >>
((i & 1u) * 12u),
(i < 2u ? alpha_weights_6step_r01 : alpha_weights_6step_r23) >>
((i & 1u) * 12u));
xe_texture_copy_dest.Store4(
texel_offset_host,
row_0 | ((alpha_row.xxxx << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u));
xe_texture_copy_dest.Store4(
texel_offset_host + 16u,
row_1 | ((alpha_row.yyyy << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u));
xe_texture_copy_dest.Store4(
texel_offset_host + 32u,
row_2 | ((alpha_row.zzzz << uint4(24u, 16u, 8u, 0u)) & 0xFF000000u));
xe_texture_copy_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) {
return;
}
texel_offset_host += xe_texture_copy_host_pitch;
}
}

View File

@ -36,6 +36,7 @@ namespace d3d12 {
#include "xenia/gpu/d3d12/shaders/dxbc/texture_load_depth_unorm_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt1_rgba8_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt3a_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_load_dxt5_rgba8_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_tile_32bpp_cs.h"
#include "xenia/gpu/d3d12/shaders/dxbc/texture_tile_64bpp_cs.h"
@ -182,6 +183,7 @@ const TextureCache::LoadModeInfo TextureCache::load_mode_info_[] = {
{texture_load_64bpb_cs, sizeof(texture_load_64bpb_cs)},
{texture_load_128bpb_cs, sizeof(texture_load_128bpb_cs)},
{texture_load_dxt1_rgba8_cs, sizeof(texture_load_dxt1_rgba8_cs)},
{texture_load_dxt5_rgba8_cs, sizeof(texture_load_dxt5_rgba8_cs)},
{texture_load_dxt3a_cs, sizeof(texture_load_dxt3a_cs)},
{texture_load_ctx1_cs, sizeof(texture_load_ctx1_cs)},
{texture_load_depth_unorm_cs, sizeof(texture_load_depth_unorm_cs)},

View File

@ -100,6 +100,7 @@ class TextureCache {
k64bpb,
k128bpb,
kDXT1AsRGBA8,
kDXT5AsRGBA8,
kDXT3A,
kCTX1,
kDepthUnorm,