This commit is contained in:
red-prig 2022-11-13 21:02:13 +03:00
parent 3cff1f6249
commit 47d666c76c
6 changed files with 22 additions and 27 deletions

View File

@ -1614,7 +1614,7 @@ end;
function _get_tsharp4_cformat(PT:PTSharpResource4):TVkFormat; function _get_tsharp4_cformat(PT:PTSharpResource4):TVkFormat;
begin begin
Result:=Default(TVkFormat); Result:=VK_FORMAT_UNDEFINED;
if (PT=nil) then Exit; if (PT=nil) then Exit;
Case PT^.nfmt of Case PT^.nfmt of
@ -1623,6 +1623,7 @@ begin
IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_UNORM; IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_UNORM;
IMG_DATA_FORMAT_8_8 :Result:=VK_FORMAT_R8G8_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_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 :Result:=VK_FORMAT_R16G16_UNORM;
IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_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; 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_BC1 :Result:=VK_FORMAT_BC1_RGBA_UNORM_BLOCK;
IMG_DATA_FORMAT_BC3 :Result:=VK_FORMAT_BC3_UNORM_BLOCK; IMG_DATA_FORMAT_BC3 :Result:=VK_FORMAT_BC3_UNORM_BLOCK;
IMG_DATA_FORMAT_BC7 :Result:=VK_FORMAT_BC7_UNORM_BLOCK; IMG_DATA_FORMAT_BC7 :Result:=VK_FORMAT_BC7_UNORM_BLOCK;
else else;
Assert(false,_get_tex_dfmt_str(PT^.dfmt));
end; end;
IMG_NUM_FORMAT_SRGB : IMG_NUM_FORMAT_SRGB :
@ -1641,8 +1641,7 @@ begin
IMG_DATA_FORMAT_8_8_8_8 :Result:=VK_FORMAT_R8G8B8A8_SRGB; 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_BC1 :Result:=VK_FORMAT_BC1_RGBA_SRGB_BLOCK;
IMG_DATA_FORMAT_BC3 :Result:=VK_FORMAT_BC3_SRGB_BLOCK; IMG_DATA_FORMAT_BC3 :Result:=VK_FORMAT_BC3_SRGB_BLOCK;
else else;
Assert(false,_get_tex_dfmt_str(PT^.dfmt));
end; end;
IMG_NUM_FORMAT_SNORM : IMG_NUM_FORMAT_SNORM :
@ -1650,10 +1649,10 @@ begin
IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_SNORM; IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_SNORM;
IMG_DATA_FORMAT_8_8 :Result:=VK_FORMAT_R8G8_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_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 :Result:=VK_FORMAT_R16G16_SNORM;
IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_SNORM; IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_SNORM;
else else;
Assert(false,_get_tex_dfmt_str(PT^.dfmt));
end; end;
IMG_NUM_FORMAT_USCALED: IMG_NUM_FORMAT_USCALED:
@ -1661,10 +1660,10 @@ begin
IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_USCALED; IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_USCALED;
IMG_DATA_FORMAT_8_8 :Result:=VK_FORMAT_R8G8_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_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 :Result:=VK_FORMAT_R16G16_USCALED;
IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_USCALED; IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_USCALED;
else else;
Assert(false,_get_tex_dfmt_str(PT^.dfmt));
end; end;
@ -1673,10 +1672,10 @@ begin
IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_SSCALED; IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_SSCALED;
IMG_DATA_FORMAT_8_8 :Result:=VK_FORMAT_R8G8_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_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 :Result:=VK_FORMAT_R16G16_SSCALED;
IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_SSCALED; IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_SSCALED;
else else;
Assert(false,_get_tex_dfmt_str(PT^.dfmt));
end; end;
IMG_NUM_FORMAT_UINT : IMG_NUM_FORMAT_UINT :
@ -1684,6 +1683,7 @@ begin
IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_UINT; IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_UINT;
IMG_DATA_FORMAT_8_8 :Result:=VK_FORMAT_R8G8_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_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 :Result:=VK_FORMAT_R16G16_UINT;
IMG_DATA_FORMAT_16_16_16_16 :Result:=VK_FORMAT_R16G16B16A16_UINT; IMG_DATA_FORMAT_16_16_16_16 :Result:=VK_FORMAT_R16G16B16A16_UINT;
IMG_DATA_FORMAT_32 :Result:=VK_FORMAT_R32_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_S2_F2:Result:=VK_FORMAT_R8_UINT;
IMG_DATA_FORMAT_FMASK8_S4_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; IMG_DATA_FORMAT_FMASK8_S4_F4:Result:=VK_FORMAT_R8_UINT;
else else;
Assert(false,_get_tex_dfmt_str(PT^.dfmt));
end; end;
IMG_NUM_FORMAT_SINT : IMG_NUM_FORMAT_SINT :
@ -1705,14 +1704,14 @@ begin
IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_SINT; IMG_DATA_FORMAT_8 :Result:=VK_FORMAT_R8_SINT;
IMG_DATA_FORMAT_8_8 :Result:=VK_FORMAT_R8G8_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_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 :Result:=VK_FORMAT_R16G16_SINT;
IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_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 :Result:=VK_FORMAT_R32_SINT;
IMG_DATA_FORMAT_32_32 :Result:=VK_FORMAT_R32G32_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 :Result:=VK_FORMAT_R32G32B32_SINT;
IMG_DATA_FORMAT_32_32_32_32:Result:=VK_FORMAT_R32G32B32A32_SINT; IMG_DATA_FORMAT_32_32_32_32:Result:=VK_FORMAT_R32G32B32A32_SINT;
else else;
Assert(false,_get_tex_dfmt_str(PT^.dfmt));
end; end;
IMG_NUM_FORMAT_FLOAT : IMG_NUM_FORMAT_FLOAT :
@ -1724,14 +1723,13 @@ begin
IMG_DATA_FORMAT_32_32 :Result:=VK_FORMAT_R32G32_SFLOAT; 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 :Result:=VK_FORMAT_R32G32B32_SFLOAT;
IMG_DATA_FORMAT_32_32_32_32:Result:=VK_FORMAT_R32G32B32A32_SFLOAT; IMG_DATA_FORMAT_32_32_32_32:Result:=VK_FORMAT_R32G32B32A32_SFLOAT;
else else;
Assert(false,_get_tex_dfmt_str(PT^.dfmt));
end; end;
else else;
Assert(false,_get_tex_nfmt_str(PT^.nfmt));
end; end;
Assert(Result<>VK_FORMAT_UNDEFINED,'[_get_tsharp4_cformat] dfmt:'+_get_tex_dfmt_str(PT^.dfmt)+' nfmt:'+_get_tex_nfmt_str(PT^.dfmt));
end; end;
function _get_tsharp4_image_info(PT:PTSharpResource4):TvImageKey; function _get_tsharp4_image_info(PT:PTSharpResource4):TvImageKey;

View File

@ -389,6 +389,7 @@ Function getResourceMemoryType_vsharp(PV:PVSharpResource4):Byte;
Function getResourceMemoryType_tsharp4(PT:PTSharpResource4):Byte; Function getResourceMemoryType_tsharp4(PT:PTSharpResource4):Byte;
Function getResourceMemoryType_tsharp8(PT:PTSharpResource8):Byte; Function getResourceMemoryType_tsharp8(PT:PTSharpResource8):Byte;
Function getMemoryType_str(b:Byte):RawByteString; Function getMemoryType_str(b:Byte):RawByteString;
function get_tiling_idx_str(b:Byte):RawByteString;
procedure print_vsharp(PV:PVSharpResource4); procedure print_vsharp(PV:PVSharpResource4);
procedure print_tsharp4(PT:PTSharpResource4); procedure print_tsharp4(PT:PTSharpResource4);

View File

@ -606,8 +606,6 @@ begin
end; end;
Function TEmit_MIMG.Gather_value(var offset:DWORD;rtype:TsrDataType):PsrRegNode; Function TEmit_MIMG.Gather_value(var offset:DWORD;rtype:TsrDataType):PsrRegNode;
var
src:PsrRegNode;
begin begin
Result:=fetch_vsrc8(FSPI.MIMG.VADDR+offset,rtype); Result:=fetch_vsrc8(FSPI.MIMG.VADDR+offset,rtype);
Inc(offset); Inc(offset);

View File

@ -362,6 +362,8 @@ begin
S_NOP, S_NOP,
S_WAITCNT:; S_WAITCNT:;
S_TTRACEDATA:; //write_thread_trace_data(M0[31:0])
S_ENDPGM: S_ENDPGM:
begin begin
if not is_term_op(line) then if not is_term_op(line) then

View File

@ -180,8 +180,6 @@ end;
procedure TsrInputList.Test; procedure TsrInputList.Test;
var var
pDecorateList:PsrDecorateList;
pCapabilityList:PsrCapabilityList;
node:PsrInput; node:PsrInput;
pVar:PsrVariable; pVar:PsrVariable;
@ -198,9 +196,6 @@ var
end; end;
begin begin
pDecorateList :=FEmit.GetDecorateList;
pCapabilityList:=FEmit.GetCapabilityList;
node:=First; node:=First;
While (node<>nil) do While (node<>nil) do
begin begin

View File

@ -8,6 +8,7 @@ uses
SysUtils, SysUtils,
RWLock, RWLock,
g23tree, g23tree,
ps4_shader,
ps4_tiling, ps4_tiling,
Vulkan, Vulkan,
vDevice, vDevice,
@ -494,7 +495,7 @@ begin
_Load_Thin_1dThin(cmd,TvImage2(image)); _Load_Thin_1dThin(cmd,TvImage2(image));
else else
Assert(false,'TODO'); Assert(false,'TODO tiling_idx:'+get_tiling_idx_str(TvImage2(image).key.params.tiling_idx));
end; end;
end; end;