mirror of https://github.com/red-prig/fpPS4.git
This commit is contained in:
parent
7e6699ea9d
commit
b45d537b96
|
@ -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);
|
||||
|
||||
/////////
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue