mirror of https://github.com/red-prig/fpPS4.git
This commit is contained in:
parent
3c0fe1e0d1
commit
bd375e6b51
|
@ -2029,6 +2029,10 @@ begin
|
||||||
|
|
||||||
ctx.Render.AddClearColor(ctx.rt_info^.DB_INFO.CLEAR_VALUE);
|
ctx.Render.AddClearColor(ctx.rt_info^.DB_INFO.CLEAR_VALUE);
|
||||||
|
|
||||||
|
Writeln('BindDepth:->'#13#10,
|
||||||
|
' 0x',HexStr(ri.FHandle,16),':',ri.key.cformat,':',ri.FName,'->'#13#10,
|
||||||
|
' 0x',HexStr(iv.FHandle,16),':',iv.key.cformat,':',iv.FName);
|
||||||
|
|
||||||
//
|
//
|
||||||
if limits.VK_KHR_imageless_framebuffer then
|
if limits.VK_KHR_imageless_framebuffer then
|
||||||
begin
|
begin
|
||||||
|
|
|
@ -7,6 +7,7 @@ interface
|
||||||
uses
|
uses
|
||||||
Classes,
|
Classes,
|
||||||
SysUtils,
|
SysUtils,
|
||||||
|
md_systm,
|
||||||
kern_authinfo,
|
kern_authinfo,
|
||||||
kern_proc,
|
kern_proc,
|
||||||
murmurhash,
|
murmurhash,
|
||||||
|
@ -107,13 +108,19 @@ begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Procedure DUMP_USER_DATA(F:THandle;base:Pointer;REG:WORD;USER_DATA:PDWORD);
|
Procedure DUMP_USER_DATA(F:THandle;base:Pointer;REG:WORD;USER_DATA:PDWORD);
|
||||||
|
const
|
||||||
|
InputUsageSize=1024; //size is unknow
|
||||||
var
|
var
|
||||||
i:Integer;
|
i:Integer;
|
||||||
buf:Pointer;
|
buf:Pointer;
|
||||||
|
InputUsagePtr:Pointer;
|
||||||
size:DWORD;
|
size:DWORD;
|
||||||
USEAGE_DATA:TUSER_DATA_USEAGE;
|
USEAGE_DATA:TUSER_DATA_USEAGE;
|
||||||
begin
|
begin
|
||||||
USEAGE_DATA:=_calc_usage(_calc_shader_info(base),USER_DATA);
|
USEAGE_DATA:=_calc_usage(_calc_shader_info(base),USER_DATA);
|
||||||
|
//
|
||||||
|
InputUsagePtr:=nil;
|
||||||
|
//
|
||||||
For i:=0 to 15 do
|
For i:=0 to 15 do
|
||||||
begin
|
begin
|
||||||
Case USEAGE_DATA[i] of
|
Case USEAGE_DATA[i] of
|
||||||
|
@ -132,13 +139,23 @@ begin
|
||||||
buf:=getBufferAddress(USER_DATA[i],USER_DATA[i+1]);
|
buf:=getBufferAddress(USER_DATA[i],USER_DATA[i+1]);
|
||||||
if (buf<>nil) then
|
if (buf<>nil) then
|
||||||
begin
|
begin
|
||||||
size:=256; //size is unknow
|
if (InputUsagePtr=nil) then
|
||||||
DUMP_BLOCK(F,REG+i,buf,size);
|
begin
|
||||||
|
InputUsagePtr:=GetMem(InputUsageSize);
|
||||||
|
end;
|
||||||
|
FillChar(InputUsagePtr^,InputUsageSize,0);
|
||||||
|
md_copyin(buf,InputUsagePtr,InputUsageSize,nil);
|
||||||
|
DUMP_BLOCK(F,REG+i,InputUsagePtr,InputUsageSize);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
//
|
||||||
|
if (InputUsagePtr<>nil) then
|
||||||
|
begin
|
||||||
|
FreeMem(InputUsagePtr);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function Trim(const S: RawByteString): RawByteString;
|
function Trim(const S: RawByteString): RawByteString;
|
||||||
|
|
|
@ -527,7 +527,7 @@ end;
|
||||||
|
|
||||||
function TvImage2.FetchViewRaw(cmd:TvCustomCmdBuffer;const F:TvImageViewKey;usage:TVkFlags):TvImageView2;
|
function TvImage2.FetchViewRaw(cmd:TvCustomCmdBuffer;const F:TvImageViewKey;usage:TVkFlags):TvImageView2;
|
||||||
var
|
var
|
||||||
key2:TvImageViewKey;
|
key_view:TvImageViewKey;
|
||||||
|
|
||||||
i:TvImageView2Set.Iterator;
|
i:TvImageView2Set.Iterator;
|
||||||
t:TvImageView2;
|
t:TvImageView2;
|
||||||
|
@ -543,18 +543,31 @@ begin
|
||||||
if (Self=nil) then Exit;
|
if (Self=nil) then Exit;
|
||||||
if (FHandle=VK_NULL_HANDLE) then Exit;
|
if (FHandle=VK_NULL_HANDLE) then Exit;
|
||||||
|
|
||||||
if (usage=0) then
|
key_view:=F;
|
||||||
begin
|
|
||||||
usage:=GET_VK_IMAGE_USAGE_DEFAULT(F.cformat);
|
case FFormat of
|
||||||
|
VK_FORMAT_R32_UINT,
|
||||||
|
VK_FORMAT_R32_SINT,
|
||||||
|
VK_FORMAT_R32_SFLOAT:
|
||||||
|
if (key_view.cformat=VK_FORMAT_D32_SFLOAT) then
|
||||||
|
begin
|
||||||
|
//downlift to image
|
||||||
|
key_view.cformat:=FFormat;
|
||||||
|
end;
|
||||||
|
else;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
key2:=F;
|
if (usage=0) then
|
||||||
key2.fusage:=usage;
|
begin
|
||||||
|
usage:=GET_VK_IMAGE_USAGE_DEFAULT(key_view.cformat);
|
||||||
|
end;
|
||||||
|
|
||||||
|
key_view.fusage:=usage;
|
||||||
|
|
||||||
rw_wlock(lock);
|
rw_wlock(lock);
|
||||||
|
|
||||||
t:=nil;
|
t:=nil;
|
||||||
i:=FViews.find(@key2);
|
i:=FViews.find(@key_view);
|
||||||
if (i.Item<>nil) then
|
if (i.Item<>nil) then
|
||||||
begin
|
begin
|
||||||
t:=TvImageView2(ptruint(i.Item^)-ptruint(@TvImageView2(nil).key));
|
t:=TvImageView2(ptruint(i.Item^)-ptruint(@TvImageView2(nil).key));
|
||||||
|
@ -563,18 +576,18 @@ begin
|
||||||
cinfo:=Default(TVkImageViewCreateInfo);
|
cinfo:=Default(TVkImageViewCreateInfo);
|
||||||
cinfo.sType :=VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
|
cinfo.sType :=VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
|
||||||
cinfo.image :=FHandle;
|
cinfo.image :=FHandle;
|
||||||
cinfo.viewType :=TVkImageViewType(F.vtype);
|
cinfo.viewType :=TVkImageViewType(key_view.vtype);
|
||||||
cinfo.format :=F.cformat;
|
cinfo.format :=key_view.cformat;
|
||||||
cinfo.components.r:=TVkComponentSwizzle(F.dstSel.x);
|
cinfo.components.r:=TVkComponentSwizzle(key_view.dstSel.x);
|
||||||
cinfo.components.g:=TVkComponentSwizzle(F.dstSel.y);
|
cinfo.components.g:=TVkComponentSwizzle(key_view.dstSel.y);
|
||||||
cinfo.components.b:=TVkComponentSwizzle(F.dstSel.z);
|
cinfo.components.b:=TVkComponentSwizzle(key_view.dstSel.z);
|
||||||
cinfo.components.a:=TVkComponentSwizzle(F.dstSel.w);
|
cinfo.components.a:=TVkComponentSwizzle(key_view.dstSel.w);
|
||||||
|
|
||||||
cinfo.subresourceRange.aspectMask :=GetAspectMaskByFormat(F.cformat);
|
cinfo.subresourceRange.aspectMask :=GetAspectMaskByFormat(key_view.cformat);
|
||||||
cinfo.subresourceRange.baseMipLevel :=F.base_level;
|
cinfo.subresourceRange.baseMipLevel :=key_view.base_level;
|
||||||
cinfo.subresourceRange.levelCount :=F.last_level-F.base_level+1;
|
cinfo.subresourceRange.levelCount :=key_view.last_level-key_view.base_level+1;
|
||||||
cinfo.subresourceRange.baseArrayLayer:=F.baseArrayLayer;
|
cinfo.subresourceRange.baseArrayLayer:=key_view.baseArrayLayer;
|
||||||
cinfo.subresourceRange.layerCount :=F.layerCount;
|
cinfo.subresourceRange.layerCount :=key_view.layerCount;
|
||||||
|
|
||||||
if (cinfo.subresourceRange.baseArrayLayer +
|
if (cinfo.subresourceRange.baseArrayLayer +
|
||||||
cinfo.subresourceRange.layerCount) > self.key.params.layerCount
|
cinfo.subresourceRange.layerCount) > self.key.params.layerCount
|
||||||
|
@ -629,13 +642,13 @@ begin
|
||||||
uinfo.usage:=usage;
|
uinfo.usage:=usage;
|
||||||
|
|
||||||
if limits.VK_EXT_image_view_min_lod and
|
if limits.VK_EXT_image_view_min_lod and
|
||||||
(F.minLod<>0) then
|
(key_view.minLod<>0) then
|
||||||
begin
|
begin
|
||||||
uinfo.pNext:=@minfo;
|
uinfo.pNext:=@minfo;
|
||||||
//
|
//
|
||||||
minfo:=Default(TVkImageViewMinLodCreateInfoEXT);
|
minfo:=Default(TVkImageViewMinLodCreateInfoEXT);
|
||||||
minfo.sType :=VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT;
|
minfo.sType :=VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT;
|
||||||
minfo.minLod:=F.minLod;
|
minfo.minLod:=key_view.minLod;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Writeln('vkCreateImageView:',cinfo.format);
|
Writeln('vkCreateImageView:',cinfo.format);
|
||||||
|
@ -652,7 +665,7 @@ begin
|
||||||
t:=TvImageView2.Create;
|
t:=TvImageView2.Create;
|
||||||
t.FHandle:=FView;
|
t.FHandle:=FView;
|
||||||
t.Parent :=Self;
|
t.Parent :=Self;
|
||||||
t.key :=key2;
|
t.key :=key_view;
|
||||||
|
|
||||||
t.SetObjectName('V_'+_get_dst_sel_str(t.key.dstSel)+
|
t.SetObjectName('V_'+_get_dst_sel_str(t.key.dstSel)+
|
||||||
'_L['+IntToStr(t.key.base_level)+'-'+IntToStr(t.key.last_level)+']'+
|
'_L['+IntToStr(t.key.base_level)+'-'+IntToStr(t.key.last_level)+']'+
|
||||||
|
|
|
@ -765,7 +765,7 @@ begin
|
||||||
Exit(False);
|
Exit(False);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
m_offset:=buf.FAddr-QWORD(image.key.addr);
|
m_offset:=QWORD(image.key.addr)-buf.FAddr;
|
||||||
|
|
||||||
image.PushBarrier(cmd,
|
image.PushBarrier(cmd,
|
||||||
ord(VK_ACCESS_TRANSFER_WRITE_BIT),
|
ord(VK_ACCESS_TRANSFER_WRITE_BIT),
|
||||||
|
@ -893,7 +893,7 @@ begin
|
||||||
Exit(False);
|
Exit(False);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
m_offset:=buf.FAddr-QWORD(image.key.addr);
|
m_offset:=QWORD(image.key.addr)-buf.FAddr;
|
||||||
|
|
||||||
image.PushBarrier(cmd,
|
image.PushBarrier(cmd,
|
||||||
ord(VK_ACCESS_TRANSFER_READ_BIT),
|
ord(VK_ACCESS_TRANSFER_READ_BIT),
|
||||||
|
|
|
@ -158,13 +158,13 @@ function GET_INDEX_TYPE_SIZE(INDEX_TYPE:TVkIndexType):Byte;
|
||||||
//
|
//
|
||||||
|
|
||||||
function _get_vsharp_cformat(PV:PVSharpResource4):TVkFormat;
|
function _get_vsharp_cformat(PV:PVSharpResource4):TVkFormat;
|
||||||
function _get_tsharp4_cformat(PT:PTSharpResource4):TVkFormat;
|
function _get_tsharp4_cformat(PT:PTSharpResource4;hint:s_image_usage):TVkFormat;
|
||||||
|
|
||||||
function _get_tsharp4_image_info(PT:PTSharpResource4):TvImageKey;
|
function _get_tsharp4_image_info(PT:PTSharpResource4;hint:s_image_usage):TvImageKey;
|
||||||
function _get_tsharp8_image_info(PT:PTSharpResource8):TvImageKey;
|
function _get_tsharp8_image_info(PT:PTSharpResource8;hint:s_image_usage):TvImageKey;
|
||||||
|
|
||||||
function _get_tsharp4_image_view(PT:PTSharpResource4):TvImageViewKey;
|
function _get_tsharp4_image_view(PT:PTSharpResource4;hint:s_image_usage):TvImageViewKey;
|
||||||
function _get_tsharp8_image_view(PT:PTSharpResource8):TvImageViewKey;
|
function _get_tsharp8_image_view(PT:PTSharpResource8;hint:s_image_usage):TvImageViewKey;
|
||||||
|
|
||||||
function _get_ssharp_info(PS:PSSharpResource4):TVkSamplerCreateInfo;
|
function _get_ssharp_info(PS:PSSharpResource4):TVkSamplerCreateInfo;
|
||||||
|
|
||||||
|
@ -2028,7 +2028,7 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function _get_tsharp4_cformat(PT:PTSharpResource4):TVkFormat;
|
function _get_tsharp4_cformat(PT:PTSharpResource4;hint:s_image_usage):TVkFormat;
|
||||||
begin
|
begin
|
||||||
Result:=VK_FORMAT_UNDEFINED;
|
Result:=VK_FORMAT_UNDEFINED;
|
||||||
if (PT=nil) then Exit;
|
if (PT=nil) then Exit;
|
||||||
|
@ -2147,7 +2147,8 @@ begin
|
||||||
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 :
|
IMG_DATA_FORMAT_32 :
|
||||||
if IsTileModeDepth(PT^.tiling_idx) then
|
if (not (iu_storage in hint)) and
|
||||||
|
IsTileModeDepth(PT^.tiling_idx) then
|
||||||
begin
|
begin
|
||||||
Result:=VK_FORMAT_D32_SFLOAT;
|
Result:=VK_FORMAT_D32_SFLOAT;
|
||||||
end else
|
end else
|
||||||
|
@ -2192,7 +2193,8 @@ begin
|
||||||
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 :
|
IMG_DATA_FORMAT_32 :
|
||||||
if IsTileModeDepth(PT^.tiling_idx) then
|
if (not (iu_storage in hint)) and
|
||||||
|
IsTileModeDepth(PT^.tiling_idx) then
|
||||||
begin
|
begin
|
||||||
Result:=VK_FORMAT_D32_SFLOAT;
|
Result:=VK_FORMAT_D32_SFLOAT;
|
||||||
end else
|
end else
|
||||||
|
@ -2234,7 +2236,8 @@ begin
|
||||||
IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_SFLOAT;
|
IMG_DATA_FORMAT_16_16_16_16:Result:=VK_FORMAT_R16G16B16A16_SFLOAT;
|
||||||
|
|
||||||
IMG_DATA_FORMAT_32 :
|
IMG_DATA_FORMAT_32 :
|
||||||
if IsTileModeDepth(PT^.tiling_idx) then
|
if (not (iu_storage in hint)) and
|
||||||
|
IsTileModeDepth(PT^.tiling_idx) then
|
||||||
begin
|
begin
|
||||||
Result:=VK_FORMAT_D32_SFLOAT;
|
Result:=VK_FORMAT_D32_SFLOAT;
|
||||||
end else
|
end else
|
||||||
|
@ -2258,13 +2261,13 @@ begin
|
||||||
Assert(Result<>VK_FORMAT_UNDEFINED,'[_get_tsharp4_cformat] dfmt:'+_get_tex_dfmt_str(PT^.dfmt)+' nfmt:'+_get_tex_nfmt_str(PT^.nfmt));
|
Assert(Result<>VK_FORMAT_UNDEFINED,'[_get_tsharp4_cformat] dfmt:'+_get_tex_dfmt_str(PT^.dfmt)+' nfmt:'+_get_tex_nfmt_str(PT^.nfmt));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function _get_tsharp4_image_info(PT:PTSharpResource4):TvImageKey;
|
function _get_tsharp4_image_info(PT:PTSharpResource4;hint:s_image_usage):TvImageKey;
|
||||||
begin
|
begin
|
||||||
Result:=Default(TvImageKey);
|
Result:=Default(TvImageKey);
|
||||||
if (PT=nil) then Exit;
|
if (PT=nil) then Exit;
|
||||||
|
|
||||||
Result.Addr:=Pointer(PT^.base shl 8);
|
Result.Addr:=Pointer(PT^.base shl 8);
|
||||||
Result.cformat:=_get_tsharp4_cformat(PT);
|
Result.cformat:=_get_tsharp4_cformat(PT,hint);
|
||||||
|
|
||||||
if (Result.cformat=VK_FORMAT_UNDEFINED) then
|
if (Result.cformat=VK_FORMAT_UNDEFINED) then
|
||||||
begin
|
begin
|
||||||
|
@ -2317,9 +2320,9 @@ begin
|
||||||
Result.params.pad_height:=Result.params.height;
|
Result.params.pad_height:=Result.params.height;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function _get_tsharp8_image_info(PT:PTSharpResource8):TvImageKey;
|
function _get_tsharp8_image_info(PT:PTSharpResource8;hint:s_image_usage):TvImageKey;
|
||||||
begin
|
begin
|
||||||
Result:=_get_tsharp4_image_info(PTSharpResource4(PT));
|
Result:=_get_tsharp4_image_info(PTSharpResource4(PT),hint);
|
||||||
//
|
//
|
||||||
Result.params.pitch:=PT^.pitch+1;
|
Result.params.pitch:=PT^.pitch+1;
|
||||||
//
|
//
|
||||||
|
@ -2369,14 +2372,14 @@ end;
|
||||||
|
|
||||||
function _get_lod(w:Word):TVkFloat; forward;
|
function _get_lod(w:Word):TVkFloat; forward;
|
||||||
|
|
||||||
function _get_tsharp4_image_view(PT:PTSharpResource4):TvImageViewKey;
|
function _get_tsharp4_image_view(PT:PTSharpResource4;hint:s_image_usage):TvImageViewKey;
|
||||||
var
|
var
|
||||||
t:Byte;
|
t:Byte;
|
||||||
begin
|
begin
|
||||||
Result:=Default(TvImageViewKey);
|
Result:=Default(TvImageViewKey);
|
||||||
if (PT=nil) then Exit;
|
if (PT=nil) then Exit;
|
||||||
|
|
||||||
Result.cformat:=_get_tsharp4_cformat(PT);
|
Result.cformat:=_get_tsharp4_cformat(PT,hint);
|
||||||
|
|
||||||
Case PT^._type of
|
Case PT^._type of
|
||||||
SQ_RSRC_IMG_1D :Result.vtype:=ord(VK_IMAGE_VIEW_TYPE_1D);
|
SQ_RSRC_IMG_1D :Result.vtype:=ord(VK_IMAGE_VIEW_TYPE_1D);
|
||||||
|
@ -2423,9 +2426,9 @@ begin
|
||||||
//Result.last_level:=0; /////
|
//Result.last_level:=0; /////
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function _get_tsharp8_image_view(PT:PTSharpResource8):TvImageViewKey;
|
function _get_tsharp8_image_view(PT:PTSharpResource8;hint:s_image_usage):TvImageViewKey;
|
||||||
begin
|
begin
|
||||||
Result:=_get_tsharp4_image_view(PTSharpResource4(PT));
|
Result:=_get_tsharp4_image_view(PTSharpResource4(PT),hint);
|
||||||
//
|
//
|
||||||
Case PT^._type of
|
Case PT^._type of
|
||||||
SQ_RSRC_IMG_CUBE:
|
SQ_RSRC_IMG_CUBE:
|
||||||
|
|
|
@ -1482,6 +1482,7 @@ end;
|
||||||
Procedure TvUniformBuilder.AddTSharp4(PT:PTSharpResource4;btype:TvBindImageType;fset,bind:DWord;flags:TvLayoutFlags);
|
Procedure TvUniformBuilder.AddTSharp4(PT:PTSharpResource4;btype:TvBindImageType;fset,bind:DWord;flags:TvLayoutFlags);
|
||||||
var
|
var
|
||||||
b:TImageBindExt;
|
b:TImageBindExt;
|
||||||
|
hint:s_image_usage;
|
||||||
begin
|
begin
|
||||||
Assert(PT<>nil);
|
Assert(PT<>nil);
|
||||||
if (PT=nil) then Exit;
|
if (PT=nil) then Exit;
|
||||||
|
@ -1494,8 +1495,16 @@ begin
|
||||||
b.bind :=bind;
|
b.bind :=bind;
|
||||||
b.memuse:=_get_buf_mem_usage(flags);
|
b.memuse:=_get_buf_mem_usage(flags);
|
||||||
|
|
||||||
b.FImage:=_get_tsharp4_image_info(PT);
|
if (btype in [vbStorage,vbMipStorage]) then
|
||||||
b.FView :=_get_tsharp4_image_view(PT);
|
begin
|
||||||
|
hint:=[iu_storage];
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
hint:=[];
|
||||||
|
end;
|
||||||
|
|
||||||
|
b.FImage:=_get_tsharp4_image_info(PT,hint);
|
||||||
|
b.FView :=_get_tsharp4_image_view(PT,hint);
|
||||||
|
|
||||||
Insert(b,FImages,Length(FImages));
|
Insert(b,FImages,Length(FImages));
|
||||||
end;
|
end;
|
||||||
|
@ -1503,6 +1512,7 @@ end;
|
||||||
Procedure TvUniformBuilder.AddTSharp8(PT:PTSharpResource8;btype:TvBindImageType;fset,bind:DWord;flags:TvLayoutFlags);
|
Procedure TvUniformBuilder.AddTSharp8(PT:PTSharpResource8;btype:TvBindImageType;fset,bind:DWord;flags:TvLayoutFlags);
|
||||||
var
|
var
|
||||||
b:TImageBindExt;
|
b:TImageBindExt;
|
||||||
|
hint:s_image_usage;
|
||||||
begin
|
begin
|
||||||
Assert(PT<>nil);
|
Assert(PT<>nil);
|
||||||
if (PT=nil) then Exit;
|
if (PT=nil) then Exit;
|
||||||
|
@ -1515,8 +1525,16 @@ begin
|
||||||
b.bind :=bind;
|
b.bind :=bind;
|
||||||
b.memuse:=_get_buf_mem_usage(flags);
|
b.memuse:=_get_buf_mem_usage(flags);
|
||||||
|
|
||||||
b.FImage:=_get_tsharp8_image_info(PT);
|
if (btype in [vbStorage,vbMipStorage]) then
|
||||||
b.FView :=_get_tsharp8_image_view(PT);
|
begin
|
||||||
|
hint:=[iu_storage];
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
hint:=[];
|
||||||
|
end;
|
||||||
|
|
||||||
|
b.FImage:=_get_tsharp8_image_info(PT,hint);
|
||||||
|
b.FView :=_get_tsharp8_image_view(PT,hint);
|
||||||
|
|
||||||
Insert(b,FImages,Length(FImages));
|
Insert(b,FImages,Length(FImages));
|
||||||
end;
|
end;
|
||||||
|
|
Loading…
Reference in New Issue