mirror of https://github.com/red-prig/fpPS4.git
This commit is contained in:
parent
3ac9be537e
commit
f434e06678
|
@ -1242,6 +1242,17 @@ begin
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Function get_bind_str(FBind:TvPointer):RawByteString;
|
||||||
|
begin
|
||||||
|
if (FBind.FMemory=nil) then
|
||||||
|
begin
|
||||||
|
Result:='(nil)';
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
Result:='0x'+HexStr(FBind.FMemory.FHandle,16);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure Bind_Uniforms(var ctx:t_me_render_context;
|
procedure Bind_Uniforms(var ctx:t_me_render_context;
|
||||||
BindPoint:TVkPipelineBindPoint;
|
BindPoint:TVkPipelineBindPoint;
|
||||||
var UniformBuilder:TvUniformBuilder);
|
var UniformBuilder:TvUniformBuilder);
|
||||||
|
@ -1433,8 +1444,8 @@ begin
|
||||||
|
|
||||||
range:=size;
|
range:=size;
|
||||||
|
|
||||||
Writeln('BindBuffer:->[',i,']'#13#10,
|
Writeln('BindBuffer:->[',i,':',bind,']',' 0x',HexStr(QWORD(addr),10),' ',get_bind_str(buf.FBind),#13#10,
|
||||||
' 0x',HexStr(buf.FHandle,16),':',buf.FName,'->[',diff_a,'..',range,']');
|
' 0x',HexStr(buf.FHandle,16),':',buf.FName,'->[',diff_a,'..',diff_a+range,']');
|
||||||
|
|
||||||
DescriptorGroup.BindBuffer(fset,bind,
|
DescriptorGroup.BindBuffer(fset,bind,
|
||||||
buf.FHandle,
|
buf.FHandle,
|
||||||
|
@ -2348,6 +2359,8 @@ begin
|
||||||
pm4_InitStream(ctx);
|
pm4_InitStream(ctx);
|
||||||
//
|
//
|
||||||
|
|
||||||
|
//if not ctx.WaitConfirmOrSwitch then Exit;
|
||||||
|
|
||||||
StartFrameCapture;
|
StartFrameCapture;
|
||||||
|
|
||||||
ctx.BeginCmdBuffer;
|
ctx.BeginCmdBuffer;
|
||||||
|
@ -2838,11 +2851,12 @@ end;
|
||||||
procedure pm4_EventWrite(var ctx:t_me_render_context;node:p_pm4_node_EventWrite);
|
procedure pm4_EventWrite(var ctx:t_me_render_context;node:p_pm4_node_EventWrite);
|
||||||
begin
|
begin
|
||||||
Case node^.eventType of
|
Case node^.eventType of
|
||||||
|
CS_PARTIAL_FLUSH, //CS
|
||||||
CACHE_FLUSH_AND_INV_EVENT, //CB,DB
|
CACHE_FLUSH_AND_INV_EVENT, //CB,DB
|
||||||
FLUSH_AND_INV_CB_PIXEL_DATA, //CB
|
DB_CACHE_FLUSH_AND_INV, //DB
|
||||||
//FLUSH_AND_INV_DB_DATA_TS :Writeln(' eventType=FLUSH_AND_INV_DB_DATA_TS');
|
|
||||||
FLUSH_AND_INV_DB_META, //HTILE
|
FLUSH_AND_INV_DB_META, //HTILE
|
||||||
FLUSH_AND_INV_CB_META: //CMASK
|
FLUSH_AND_INV_CB_META, //CMASK
|
||||||
|
FLUSH_AND_INV_CB_PIXEL_DATA: //CB
|
||||||
begin
|
begin
|
||||||
if (ctx.Cmd<>nil) and ctx.Cmd.IsAllocated then
|
if (ctx.Cmd<>nil) and ctx.Cmd.IsAllocated then
|
||||||
begin
|
begin
|
||||||
|
|
|
@ -1076,13 +1076,18 @@ begin
|
||||||
|
|
||||||
if p_print_gpu_ops then
|
if p_print_gpu_ops then
|
||||||
Case Body^.eventType of
|
Case Body^.eventType of
|
||||||
|
CS_PARTIAL_FLUSH :Writeln(' eventType=CS_PARTIAL_FLUSH');
|
||||||
CACHE_FLUSH_AND_INV_EVENT :Writeln(' eventType=FLUSH_AND_INV_EVENT');
|
CACHE_FLUSH_AND_INV_EVENT :Writeln(' eventType=FLUSH_AND_INV_EVENT');
|
||||||
FLUSH_AND_INV_CB_PIXEL_DATA:Writeln(' eventType=FLUSH_AND_INV_CB_PIXEL_DATA');
|
DB_CACHE_FLUSH_AND_INV :Writeln(' eventType=DB_CACHE_FLUSH_AND_INV');
|
||||||
FLUSH_AND_INV_DB_DATA_TS :Writeln(' eventType=FLUSH_AND_INV_DB_DATA_TS');
|
FLUSH_AND_INV_DB_DATA_TS :Writeln(' eventType=FLUSH_AND_INV_DB_DATA_TS');
|
||||||
FLUSH_AND_INV_DB_META :Writeln(' eventType=FLUSH_AND_INV_DB_META');
|
FLUSH_AND_INV_DB_META :Writeln(' eventType=FLUSH_AND_INV_DB_META');
|
||||||
FLUSH_AND_INV_CB_DATA_TS :Writeln(' eventType=FLUSH_AND_INV_CB_DATA_TS');
|
FLUSH_AND_INV_CB_DATA_TS :Writeln(' eventType=FLUSH_AND_INV_CB_DATA_TS');
|
||||||
FLUSH_AND_INV_CB_META :Writeln(' eventType=FLUSH_AND_INV_CB_META');
|
FLUSH_AND_INV_CB_META :Writeln(' eventType=FLUSH_AND_INV_CB_META');
|
||||||
|
FLUSH_AND_INV_CB_PIXEL_DATA:Writeln(' eventType=FLUSH_AND_INV_CB_PIXEL_DATA');
|
||||||
THREAD_TRACE_MARKER :Writeln(' eventType=THREAD_TRACE_MARKER');
|
THREAD_TRACE_MARKER :Writeln(' eventType=THREAD_TRACE_MARKER');
|
||||||
|
PIXEL_PIPE_STAT_CONTROL :Writeln(' eventType=PIXEL_PIPE_STAT_CONTROL');
|
||||||
|
PIXEL_PIPE_STAT_DUMP :Writeln(' eventType=PIXEL_PIPE_STAT_DUMP');
|
||||||
|
PIXEL_PIPE_STAT_RESET :Writeln(' eventType=PIXEL_PIPE_STAT_RESET');
|
||||||
PIPELINESTAT_STOP :Writeln(' eventType=PIPELINESTAT_STOP');
|
PIPELINESTAT_STOP :Writeln(' eventType=PIPELINESTAT_STOP');
|
||||||
PERFCOUNTER_START :Writeln(' eventType=PERFCOUNTER_START');
|
PERFCOUNTER_START :Writeln(' eventType=PERFCOUNTER_START');
|
||||||
PERFCOUNTER_STOP :Writeln(' eventType=PERFCOUNTER_STOP');
|
PERFCOUNTER_STOP :Writeln(' eventType=PERFCOUNTER_STOP');
|
||||||
|
|
|
@ -1426,6 +1426,32 @@ begin
|
||||||
if (not BeginCmdBuffer) then Exit;
|
if (not BeginCmdBuffer) then Exit;
|
||||||
|
|
||||||
Case eventType of
|
Case eventType of
|
||||||
|
CS_PARTIAL_FLUSH:
|
||||||
|
begin
|
||||||
|
Inc(cmd_count);
|
||||||
|
|
||||||
|
DebugReport.CmdInsertLabel(FCmdbuf,'CS_PARTIAL_FLUSH');
|
||||||
|
|
||||||
|
vkMemoryBarrier(FCmdbuf,
|
||||||
|
VK_ACCESS_CS, //srcAccessMask
|
||||||
|
VK_ACCESS_ANY, //dstAccessMask
|
||||||
|
ord(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT), //srcStageMask
|
||||||
|
ord(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT)); //dstStageMask
|
||||||
|
end;
|
||||||
|
DB_CACHE_FLUSH_AND_INV: //DB
|
||||||
|
begin
|
||||||
|
Inc(cmd_count);
|
||||||
|
|
||||||
|
DebugReport.CmdInsertLabel(FCmdbuf,'DB_CACHE_FLUSH_AND_INV');
|
||||||
|
|
||||||
|
vkMemoryBarrier(FCmdbuf,
|
||||||
|
VK_ACCESS_DB, //srcAccessMask
|
||||||
|
VK_ACCESS_ANY, //dstAccessMask
|
||||||
|
VK_STAGE_DB, //srcStageMask
|
||||||
|
ord(VK_PIPELINE_STAGE_ALL_COMMANDS_BIT)); //dstStageMask
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
FLUSH_AND_INV_DB_META: //HTILE
|
FLUSH_AND_INV_DB_META: //HTILE
|
||||||
begin
|
begin
|
||||||
Inc(cmd_count);
|
Inc(cmd_count);
|
||||||
|
|
Loading…
Reference in New Issue