mirror of https://github.com/red-prig/fpPS4.git
I broke it
This commit is contained in:
parent
5b47cc263e
commit
c13a6afa30
|
@ -968,6 +968,11 @@ begin
|
|||
|
||||
ri:=TvImage2(resource_instance^.resource^.rimage);
|
||||
|
||||
if (ri<>nil) then
|
||||
begin
|
||||
ctx.Cmd.RefTo(ri);
|
||||
end;
|
||||
|
||||
if (ri<>nil) then
|
||||
if (ri.is_invalid) then
|
||||
begin
|
||||
|
@ -1031,6 +1036,11 @@ begin
|
|||
|
||||
buf:=TvHostBuffer(resource_instance^.resource^.rimage);
|
||||
|
||||
if (buf<>nil) then
|
||||
begin
|
||||
ctx.Cmd.RefTo(buf);
|
||||
end;
|
||||
|
||||
if (buf<>nil) then
|
||||
if (buf.is_invalid) then
|
||||
begin
|
||||
|
@ -1662,6 +1672,11 @@ begin
|
|||
|
||||
ri:=TvImage2(color_instance[i]^.resource^.rimage);
|
||||
|
||||
if (ri<>nil) then
|
||||
begin
|
||||
ctx.Cmd.RefTo(ri);
|
||||
end;
|
||||
|
||||
if (ri<>nil) then
|
||||
if (ri.is_invalid) then
|
||||
begin
|
||||
|
@ -1726,6 +1741,11 @@ begin
|
|||
rd:=TvCustomImage2(d_instance^.resource^.rimage);
|
||||
end;
|
||||
|
||||
if (rd<>nil) then
|
||||
begin
|
||||
ctx.Cmd.RefTo(rd);
|
||||
end;
|
||||
|
||||
if (rd<>nil) then
|
||||
if (rd.is_invalid) then
|
||||
begin
|
||||
|
@ -1738,6 +1758,11 @@ begin
|
|||
rs:=TvCustomImage2(s_instance^.resource^.rimage);
|
||||
end;
|
||||
|
||||
if (rs<>nil) then
|
||||
begin
|
||||
ctx.Cmd.RefTo(rs);
|
||||
end;
|
||||
|
||||
if (rs<>nil) then
|
||||
if (rs.is_invalid) then
|
||||
begin
|
||||
|
@ -2360,6 +2385,8 @@ begin
|
|||
ctx.Cmd.DispatchDirect(node^.DIM_X,node^.DIM_Y,node^.DIM_Z);
|
||||
|
||||
/////////
|
||||
|
||||
pm4_Writeback_After(ctx);
|
||||
end;
|
||||
|
||||
function mul_div_u64(m,d,v:QWORD):QWORD; sysv_abi_default; assembler; nostackframe;
|
||||
|
|
|
@ -328,6 +328,7 @@ uses
|
|||
vm_pmap_prot,
|
||||
machdep,
|
||||
kern_thr,
|
||||
md_systm,
|
||||
systm,
|
||||
kern_jit_asm;
|
||||
|
||||
|
@ -4178,8 +4179,11 @@ end;
|
|||
//
|
||||
|
||||
function get_instruction_info(addr:Pointer):t_instruction_info;
|
||||
type
|
||||
t_data_16=array[0..15] of Byte;
|
||||
var
|
||||
ptr:Pointer;
|
||||
data:t_data_16;
|
||||
|
||||
dis:TX86Disassembler;
|
||||
din:TInstruction;
|
||||
|
@ -4189,7 +4193,10 @@ begin
|
|||
dis:=Default(TX86Disassembler);
|
||||
din:=Default(TInstruction);
|
||||
|
||||
ptr:=addr;
|
||||
data:=Default(t_data_16);
|
||||
md_copyout(@data,addr,16,nil);
|
||||
|
||||
ptr:=@data;
|
||||
|
||||
dis.Disassemble(dm64,ptr,din);
|
||||
|
||||
|
@ -4230,7 +4237,7 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
print_disassemble(addr,Result.code_size);
|
||||
print_disassemble(@data,Result.code_size);
|
||||
|
||||
Assert(false,'get_instruction_info');
|
||||
end;
|
||||
|
|
|
@ -128,6 +128,7 @@ end;
|
|||
|
||||
function TvRefsObject.Hold(Sender:TObject):Boolean;
|
||||
begin
|
||||
Result:=True;
|
||||
if System.InterlockedIncrement(FHold)=1 then
|
||||
begin
|
||||
Result:=Acquire(Sender);
|
||||
|
|
|
@ -109,7 +109,7 @@ begin
|
|||
begin
|
||||
buf:=It.Item^.FBuffer;
|
||||
|
||||
if buf.Acquire(nil) then
|
||||
if buf.Hold(nil) then
|
||||
begin
|
||||
|
||||
if ((buf.FAddr+buf.FSize)>=__end) then
|
||||
|
@ -117,7 +117,7 @@ begin
|
|||
Exit(buf);
|
||||
end else
|
||||
begin
|
||||
buf.Release(nil);
|
||||
buf.Drop(nil);
|
||||
//The search key matches but the size does not.
|
||||
goto _delete;
|
||||
end;
|
||||
|
@ -146,7 +146,7 @@ begin
|
|||
begin
|
||||
buf:=It.Item^.FBuffer;
|
||||
|
||||
if buf.Acquire(nil) then
|
||||
if buf.Hold(nil) then
|
||||
begin
|
||||
|
||||
if (buf.FAddr<=Addr) and
|
||||
|
@ -155,7 +155,7 @@ begin
|
|||
Exit(buf);
|
||||
end;
|
||||
|
||||
buf.Release(nil);
|
||||
buf.Drop(nil);
|
||||
end else
|
||||
begin
|
||||
goto _delete;
|
||||
|
@ -275,7 +275,7 @@ begin
|
|||
goto _repeat;
|
||||
end;
|
||||
|
||||
key.FBuffer.Acquire(nil); //analog ref in [_FindHostBuffer]
|
||||
key.FBuffer.Hold(nil); //analog ref in [_FindHostBuffer]
|
||||
|
||||
//
|
||||
FHostBufferSet.Unlock_wr;
|
||||
|
@ -291,8 +291,8 @@ begin
|
|||
|
||||
if (Result<>nil) then
|
||||
begin
|
||||
Result.Release(nil); //release [_FindHostBuffer]
|
||||
mem.Release; //release [FetchHostMap]
|
||||
Result.Drop(nil); //release [_FindHostBuffer]
|
||||
mem.Release; //release [FetchHostMap]
|
||||
end;
|
||||
|
||||
end;
|
||||
|
|
|
@ -152,7 +152,7 @@ type
|
|||
end;
|
||||
|
||||
function FetchImage(cmd:TvCustomCmdBuffer;const F:TvImageKey;usage:s_image_usage):TvImage2;
|
||||
function FindImage(cmd:TvCustomCmdBuffer;Addr:Pointer;cformat:TVkFormat):TvImage2;
|
||||
function FindImage (cmd:TvCustomCmdBuffer;Addr:Pointer;cformat:TVkFormat):TvImage2;
|
||||
|
||||
Function get_image_size(const key:TvImageKey):Ptruint; external name 'tiling_get_image_size';
|
||||
|
||||
|
@ -1139,7 +1139,7 @@ begin
|
|||
|
||||
if (t<>nil) then
|
||||
begin
|
||||
if t.Acquire(nil) then //result ref
|
||||
if t.Hold(nil) then //result ref
|
||||
begin
|
||||
t.FUsage:=t.FUsage+usage;
|
||||
end else
|
||||
|
@ -1190,7 +1190,7 @@ begin
|
|||
|
||||
if (t<>nil) then
|
||||
begin
|
||||
t.Acquire(nil); //result ref
|
||||
t.Hold(nil); //result ref
|
||||
end;
|
||||
|
||||
mem.Release; //release [FetchMemory]
|
||||
|
@ -1225,7 +1225,7 @@ function FetchImage(cmd:TvCustomCmdBuffer;const F:TvImageKey;usage:s_image_usage
|
|||
begin
|
||||
FImage2Set.Lock_wr;
|
||||
|
||||
Result:=_FetchImage(F,usage); // <- Acquire(nil)/FetchMemory
|
||||
Result:=_FetchImage(F,usage); // <- Hold(nil)/FetchMemory
|
||||
|
||||
//add dep
|
||||
cmd.RefTo(Result);
|
||||
|
@ -1234,7 +1234,7 @@ begin
|
|||
|
||||
if (Result<>nil) then
|
||||
begin
|
||||
Result.Release(nil); //release [Acquire(nil)]
|
||||
Result.Drop(nil); //release [Drop(nil)]
|
||||
end;
|
||||
end;
|
||||
|
||||
|
|
|
@ -214,8 +214,7 @@ type
|
|||
Function TvTempBuffer.ReleaseTmp(Sender:TObject):Boolean; register;
|
||||
begin
|
||||
//force free
|
||||
Free;
|
||||
Result:=True;
|
||||
Result:=Drop(nil);
|
||||
end;
|
||||
|
||||
procedure load_clear(cmd:TvCustomCmdBuffer;image:TvCustomImage2);
|
||||
|
@ -331,6 +330,7 @@ var
|
|||
a,d,b:Ptruint;
|
||||
begin
|
||||
|
||||
buf.Hold(nil);
|
||||
cmd.AddDependence(@buf.ReleaseTmp);
|
||||
|
||||
m_bytePerElement:=getFormatSize(image.key.cformat);
|
||||
|
@ -672,7 +672,7 @@ begin
|
|||
|
||||
vkUnmapMemory(Device.FHandle,FBind.FMemory.FHandle);
|
||||
|
||||
image.Release(Self);
|
||||
image.Drop(Self);
|
||||
Result:=inherited;
|
||||
end;
|
||||
|
||||
|
@ -693,7 +693,7 @@ begin
|
|||
buf.image:=image;
|
||||
buf.m_full_linear_size:=m_full_linear_size;
|
||||
|
||||
image.Acquire(buf);
|
||||
image.Hold(buf);
|
||||
|
||||
vmem:=MemManager.FetchMemory(buf.GetRequirements,V_PROP_HOST_VISIBLE or V_PROP_DEVICE_LOCAL);
|
||||
|
||||
|
@ -992,6 +992,9 @@ begin
|
|||
set_tiling_cbs(kTileModeThin_2dThin ,0,@Load_Linear,@Writeback_Linear,@GetLinearAlignSize); //@load_clear;
|
||||
set_tiling_cbs(kTileModeThin_2dThin ,1,@Load_Linear,@Writeback_Linear,@GetLinearAlignSize); //@load_clear;
|
||||
|
||||
set_tiling_cbs(kTileModeThick_1dThick ,0,@Load_Linear,@Writeback_Linear,@GetLinearAlignSize); //@load_clear;
|
||||
set_tiling_cbs(kTileModeThick_1dThick ,1,@Load_Linear,@Writeback_Linear,@GetLinearAlignSize); //@load_clear;
|
||||
|
||||
//
|
||||
set_tiling_cbs(kTileModeDepth_1dThin ,0,@load_1dThin,@write_1dThin,@Get1dThinSize);
|
||||
set_tiling_cbs(kTileModeDepth_1dThin ,1,@load_1dThin,@write_1dThin,@Get1dThinSize);
|
||||
|
|
|
@ -1011,7 +1011,7 @@ begin
|
|||
Exit;
|
||||
end;
|
||||
|
||||
Result:=F.Hold(nil);
|
||||
Result:=F.Drop(nil);
|
||||
|
||||
Guard.Free;
|
||||
end;
|
||||
|
|
Loading…
Reference in New Issue