diff --git a/chip/ps4_gpu_regs.pas b/chip/ps4_gpu_regs.pas index 62cb3b00..fec439da 100644 --- a/chip/ps4_gpu_regs.pas +++ b/chip/ps4_gpu_regs.pas @@ -1614,7 +1614,7 @@ end; function _get_tsharp4_cformat(PT:PTSharpResource4):TVkFormat; begin - Result:=Default(TVkFormat); + Result:=VK_FORMAT_UNDEFINED; if (PT=nil) then Exit; Case PT^.nfmt of @@ -1623,6 +1623,7 @@ begin IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_UNORM; IMG_DATA_FORMAT_8_8 :Result:=VK_FORMAT_R8G8_UNORM; IMG_DATA_FORMAT_8_8_8_8 :Result:=VK_FORMAT_R8G8B8A8_UNORM; + IMG_DATA_FORMAT_16 :Result:=VK_FORMAT_R16_UNORM; IMG_DATA_FORMAT_16_16 :Result:=VK_FORMAT_R16G16_UNORM; IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_UNORM; IMG_DATA_FORMAT_5_6_5 :Result:=VK_FORMAT_R5G6B5_UNORM_PACK16; @@ -1630,8 +1631,7 @@ begin IMG_DATA_FORMAT_BC1 :Result:=VK_FORMAT_BC1_RGBA_UNORM_BLOCK; IMG_DATA_FORMAT_BC3 :Result:=VK_FORMAT_BC3_UNORM_BLOCK; IMG_DATA_FORMAT_BC7 :Result:=VK_FORMAT_BC7_UNORM_BLOCK; - else - Assert(false,_get_tex_dfmt_str(PT^.dfmt)); + else; end; IMG_NUM_FORMAT_SRGB : @@ -1641,8 +1641,7 @@ begin IMG_DATA_FORMAT_8_8_8_8 :Result:=VK_FORMAT_R8G8B8A8_SRGB; IMG_DATA_FORMAT_BC1 :Result:=VK_FORMAT_BC1_RGBA_SRGB_BLOCK; IMG_DATA_FORMAT_BC3 :Result:=VK_FORMAT_BC3_SRGB_BLOCK; - else - Assert(false,_get_tex_dfmt_str(PT^.dfmt)); + else; end; IMG_NUM_FORMAT_SNORM : @@ -1650,10 +1649,10 @@ begin IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_SNORM; IMG_DATA_FORMAT_8_8 :Result:=VK_FORMAT_R8G8_SNORM; IMG_DATA_FORMAT_8_8_8_8 :Result:=VK_FORMAT_R8G8B8A8_SNORM; + IMG_DATA_FORMAT_16 :Result:=VK_FORMAT_R16_SNORM; IMG_DATA_FORMAT_16_16 :Result:=VK_FORMAT_R16G16_SNORM; IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_SNORM; - else - Assert(false,_get_tex_dfmt_str(PT^.dfmt)); + else; end; IMG_NUM_FORMAT_USCALED: @@ -1661,10 +1660,10 @@ begin IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_USCALED; IMG_DATA_FORMAT_8_8 :Result:=VK_FORMAT_R8G8_USCALED; IMG_DATA_FORMAT_8_8_8_8 :Result:=VK_FORMAT_R8G8B8A8_USCALED; + IMG_DATA_FORMAT_16 :Result:=VK_FORMAT_R16_USCALED; IMG_DATA_FORMAT_16_16 :Result:=VK_FORMAT_R16G16_USCALED; IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_USCALED; - else - Assert(false,_get_tex_dfmt_str(PT^.dfmt)); + else; end; @@ -1673,10 +1672,10 @@ begin IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_SSCALED; IMG_DATA_FORMAT_8_8 :Result:=VK_FORMAT_R8G8_SSCALED; IMG_DATA_FORMAT_8_8_8_8 :Result:=VK_FORMAT_R8G8B8A8_SSCALED; + IMG_DATA_FORMAT_16 :Result:=VK_FORMAT_R16_SSCALED; IMG_DATA_FORMAT_16_16 :Result:=VK_FORMAT_R16G16_SSCALED; IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_SSCALED; - else - Assert(false,_get_tex_dfmt_str(PT^.dfmt)); + else; end; IMG_NUM_FORMAT_UINT : @@ -1684,6 +1683,7 @@ begin IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_UINT; IMG_DATA_FORMAT_8_8 :Result:=VK_FORMAT_R8G8_UINT; IMG_DATA_FORMAT_8_8_8_8 :Result:=VK_FORMAT_R8G8B8A8_UINT; + IMG_DATA_FORMAT_16 :Result:=VK_FORMAT_R16_UINT; IMG_DATA_FORMAT_16_16 :Result:=VK_FORMAT_R16G16_UINT; IMG_DATA_FORMAT_16_16_16_16 :Result:=VK_FORMAT_R16G16B16A16_UINT; IMG_DATA_FORMAT_32 :Result:=VK_FORMAT_R32_UINT; @@ -1696,8 +1696,7 @@ begin IMG_DATA_FORMAT_FMASK8_S2_F2:Result:=VK_FORMAT_R8_UINT; IMG_DATA_FORMAT_FMASK8_S4_F2:Result:=VK_FORMAT_R8_UINT; IMG_DATA_FORMAT_FMASK8_S4_F4:Result:=VK_FORMAT_R8_UINT; - else - Assert(false,_get_tex_dfmt_str(PT^.dfmt)); + else; end; IMG_NUM_FORMAT_SINT : @@ -1705,14 +1704,14 @@ begin IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_SINT; IMG_DATA_FORMAT_8_8 :Result:=VK_FORMAT_R8G8_SINT; IMG_DATA_FORMAT_8_8_8_8 :Result:=VK_FORMAT_R8G8B8A8_SINT; + IMG_DATA_FORMAT_16 :Result:=VK_FORMAT_R16_SINT; IMG_DATA_FORMAT_16_16 :Result:=VK_FORMAT_R16G16_SINT; IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_SINT; IMG_DATA_FORMAT_32 :Result:=VK_FORMAT_R32_SINT; IMG_DATA_FORMAT_32_32 :Result:=VK_FORMAT_R32G32_SINT; IMG_DATA_FORMAT_32_32_32 :Result:=VK_FORMAT_R32G32B32_SINT; IMG_DATA_FORMAT_32_32_32_32:Result:=VK_FORMAT_R32G32B32A32_SINT; - else - Assert(false,_get_tex_dfmt_str(PT^.dfmt)); + else; end; IMG_NUM_FORMAT_FLOAT : @@ -1724,14 +1723,13 @@ begin IMG_DATA_FORMAT_32_32 :Result:=VK_FORMAT_R32G32_SFLOAT; IMG_DATA_FORMAT_32_32_32 :Result:=VK_FORMAT_R32G32B32_SFLOAT; IMG_DATA_FORMAT_32_32_32_32:Result:=VK_FORMAT_R32G32B32A32_SFLOAT; - else - Assert(false,_get_tex_dfmt_str(PT^.dfmt)); + else; end; - else - Assert(false,_get_tex_nfmt_str(PT^.nfmt)); + else; end; + Assert(Result<>VK_FORMAT_UNDEFINED,'[_get_tsharp4_cformat] dfmt:'+_get_tex_dfmt_str(PT^.dfmt)+' nfmt:'+_get_tex_nfmt_str(PT^.dfmt)); end; function _get_tsharp4_image_info(PT:PTSharpResource4):TvImageKey; diff --git a/chip/ps4_shader.pas b/chip/ps4_shader.pas index dcbfaa88..a4dded05 100644 --- a/chip/ps4_shader.pas +++ b/chip/ps4_shader.pas @@ -389,6 +389,7 @@ Function getResourceMemoryType_vsharp(PV:PVSharpResource4):Byte; Function getResourceMemoryType_tsharp4(PT:PTSharpResource4):Byte; Function getResourceMemoryType_tsharp8(PT:PTSharpResource8):Byte; Function getMemoryType_str(b:Byte):RawByteString; +function get_tiling_idx_str(b:Byte):RawByteString; procedure print_vsharp(PV:PVSharpResource4); procedure print_tsharp4(PT:PTSharpResource4); diff --git a/spirv/emit_mimg.pas b/spirv/emit_mimg.pas index 9e3d316d..6fb1a595 100644 --- a/spirv/emit_mimg.pas +++ b/spirv/emit_mimg.pas @@ -606,8 +606,6 @@ begin end; Function TEmit_MIMG.Gather_value(var offset:DWORD;rtype:TsrDataType):PsrRegNode; -var - src:PsrRegNode; begin Result:=fetch_vsrc8(FSPI.MIMG.VADDR+offset,rtype); Inc(offset); diff --git a/spirv/emit_sopp.pas b/spirv/emit_sopp.pas index ecf90f31..3ccbcaee 100644 --- a/spirv/emit_sopp.pas +++ b/spirv/emit_sopp.pas @@ -362,6 +362,8 @@ begin S_NOP, S_WAITCNT:; + S_TTRACEDATA:; //write_thread_trace_data(M0[31:0]) + S_ENDPGM: begin if not is_term_op(line) then diff --git a/spirv/srInput.pas b/spirv/srInput.pas index fffcad9a..8fd564d3 100644 --- a/spirv/srInput.pas +++ b/spirv/srInput.pas @@ -180,8 +180,6 @@ end; procedure TsrInputList.Test; var - pDecorateList:PsrDecorateList; - pCapabilityList:PsrCapabilityList; node:PsrInput; pVar:PsrVariable; @@ -198,9 +196,6 @@ var end; begin - pDecorateList :=FEmit.GetDecorateList; - pCapabilityList:=FEmit.GetCapabilityList; - node:=First; While (node<>nil) do begin diff --git a/vulkan/vImageTiling.pas b/vulkan/vImageTiling.pas index 2cff80e1..1f23836c 100644 --- a/vulkan/vImageTiling.pas +++ b/vulkan/vImageTiling.pas @@ -8,6 +8,7 @@ uses SysUtils, RWLock, g23tree, + ps4_shader, ps4_tiling, Vulkan, vDevice, @@ -494,7 +495,7 @@ begin _Load_Thin_1dThin(cmd,TvImage2(image)); else - Assert(false,'TODO'); + Assert(false,'TODO tiling_idx:'+get_tiling_idx_str(TvImage2(image).key.params.tiling_idx)); end; end;