This commit is contained in:
Pavel 2025-02-16 19:38:59 +03:00
parent 7e6699ea9d
commit b45d537b96
4 changed files with 54 additions and 7 deletions

View File

@ -1152,7 +1152,9 @@ begin
begin
iv:=ri.FetchView(ctx.Cmd,FView,iu_sampled);
Writeln('BindImage:','0x',HexStr(ri.FHandle,16),' 0x',HexStr(iv.FHandle,16));
Writeln('BindImage:->'#13#10,
' 0x',HexStr(ri.FHandle,16),':',ri.key.cformat,':',ri.FName,'->'#13#10,
' 0x',HexStr(iv.FHandle,16),':',iv.key.cformat,':',iv.FName);
DescriptorGroup.BindImage(fset,bind,
iv.FHandle,
@ -1166,7 +1168,9 @@ begin
iv:=ri.FetchView(ctx.Cmd,FView,iu_storage);
Writeln('BindStorage:','0x',HexStr(ri.FHandle,16),' 0x',HexStr(iv.FHandle,16));
Writeln('BindStorage:->'#13#10,
' 0x',HexStr(ri.FHandle,16),':',ri.key.cformat,':',ri.FName,'->'#13#10,
' 0x',HexStr(iv.FHandle,16),':',iv.key.cformat,':',iv.FName);
DescriptorGroup.BindStorage(fset,bind,
iv.FHandle,
@ -1691,6 +1695,10 @@ begin
ctx.Render.AddClearColor(ctx.rt_info^.RT_INFO[i].CLEAR_COLOR);
Writeln('BindFrame:->'#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
begin
@ -2041,6 +2049,8 @@ begin
pm4_InitStream(ctx);
//
//if not ctx.WaitConfirmOrSwitch then Exit;
StartFrameCapture;
ctx.BeginCmdBuffer;
@ -2058,14 +2068,17 @@ begin
case node^.ntype of
ntDrawIndex2:
begin
Writeln('DrawIndexOffset2(',node^.indexOffset,',',node^.indexCount,')');
ctx.Cmd.DrawIndexOffset2(Pointer(node^.indexBase),node^.indexOffset,node^.indexCount);
end;
ntDrawIndexOffset2:
begin
Writeln('DrawIndexOffset2(',node^.indexOffset,',',node^.indexCount,')');
ctx.Cmd.DrawIndexOffset2(Pointer(node^.indexBase),node^.indexOffset,node^.indexCount);
end;
ntDrawIndexAuto:
begin
Writeln('DrawIndexAuto(',node^.indexOffset,',',node^.indexCount,')');
ctx.Cmd.DrawIndexAuto(node^.indexOffset,node^.indexCount);
end;
ntClearDepth:
@ -2331,6 +2344,8 @@ begin
pm4_InitStream(ctx);
//
//if not ctx.WaitConfirmOrSwitch then Exit;
StartFrameCapture;
ctx.BeginCmdBuffer;
@ -2340,6 +2355,8 @@ begin
pm4_DispatchPrepare(ctx,node);
Writeln('DispatchDirect(',node^.DIM_X,',',node^.DIM_Y,',',node^.DIM_Z,')');
ctx.Cmd.DispatchDirect(node^.DIM_X,node^.DIM_Y,node^.DIM_Z);
/////////

View File

@ -59,6 +59,8 @@ type
TvImageView=class(TvRefsObject)
FHandle:TVkImageView;
FName :RawByteString;
procedure SetObjectName(const name:RawByteString);
Destructor Destroy; override;
end;
@ -1930,6 +1932,12 @@ begin
dstStageMask);
end;
procedure TvImageView.SetObjectName(const name:RawByteString);
begin
FName:=name;
DebugReport.SetObjectName(VK_OBJECT_TYPE_IMAGE_VIEW,FHandle,PChar(name));
end;
Destructor TvImageView.Destroy;
begin
if (FHandle<>VK_NULL_HANDLE) then

View File

@ -498,6 +498,17 @@ begin
end;
end;
const
DST_SEL_STR:PChar='I01RGBA';
function _get_dst_sel_str(dstSel:TvDstSel):RawByteString; inline;
begin
Result:=DST_SEL_STR[dstSel.x]+
DST_SEL_STR[dstSel.y]+
DST_SEL_STR[dstSel.z]+
DST_SEL_STR[dstSel.w];
end;
function TvImage2.FetchViewRaw(cmd:TvCustomCmdBuffer;const F:TvImageViewKey;usage:TVkFlags):TvImageView2;
var
key2:TvImageViewKey;
@ -627,6 +638,11 @@ begin
t.Parent :=Self;
t.key :=key2;
t.SetObjectName('V_'+_get_dst_sel_str(t.key.dstSel)+
'_L['+IntToStr(t.key.base_level)+'-'+IntToStr(t.key.last_level)+']'+
'_A['+IntToStr(t.key.base_array)+'-'+IntToStr(t.key.last_array)+']'
);
t.Acquire(Self); //map ref
FViews.Insert(@t.key);
end;
@ -1088,7 +1104,7 @@ begin
end;
t.SetObjectName(Ch+'_0x'+HexStr(QWORD(t.key.Addr),10)+
'_'+IntToStr(t.key.params.width)+'x'+IntToStr(t.key.params.height)+
'_'+IntToStr(t.key.params.width)+'x'+IntToStr(t.key.params.height)+'x'+IntToStr(t.key.params.depth)+
'_m'+IntToStr(t.key.params.mipLevels)+
'_a'+IntToStr(t.key.params.arrayLayers)+
'_t'+IntToStr(t.key.params.tiling.idx)+'|'+IntToStr(t.key.params.tiling.alt)

View File

@ -1509,6 +1509,12 @@ begin
//
if (Result.FMemory<>nil) then
begin
if (Result.FMemory<>TvDeviceMemory(TAILQ_FIRST(@FDevs))) then
begin
TAILQ_REMOVE (@FDevs,Result.FMemory,@Result.FMemory.entry);
TAILQ_INSERT_HEAD(@FDevs,Result.FMemory,@Result.FMemory.entry);
end;
//
Result.FMemory.Acquire(nil); //fetch ref
end;
//
@ -1538,7 +1544,7 @@ end;
Function TvMemManager._shrink_dev_block(max:TVkDeviceSize;heap_index:Byte):TVkDeviceSize;
var
node,next:TvDeviceMemory;
node,prev:TvDeviceMemory;
begin
Result:=0;
@ -1549,11 +1555,11 @@ begin
if (Result>=max) then Exit;
end;
node:=TvDeviceMemory(TAILQ_FIRST(@FDevs));
node:=TvDeviceMemory(TAILQ_LAST(@FDevs));
while (node<>nil) do
begin
next:=TvDeviceMemory(TAILQ_NEXT(node,@node.entry));
prev:=TvDeviceMemory(TAILQ_PREV(node,@node.entry));
if (node.FMemInfo.heap_index=heap_index) then
if (node.FRefs<=1) then
@ -1566,7 +1572,7 @@ begin
if (Result>=max) then Break;
end;
node:=next;
node:=prev;
end;
end;