mirror of https://github.com/red-prig/fpPS4.git
fix green colors on NVIDIA 30XX
This commit is contained in:
parent
aa0d0347b0
commit
a505a89666
|
@ -86,6 +86,7 @@ type
|
|||
FPrintAsm:Boolean;
|
||||
FUseVertexInput:Boolean;
|
||||
FUseTexelBuffer:Boolean;
|
||||
FUseOutput16:Boolean;
|
||||
|
||||
function Alloc(Size:ptruint):Pointer;
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ interface
|
|||
|
||||
uses
|
||||
sysutils,
|
||||
spirv,
|
||||
ps4_pssl,
|
||||
srNodes,
|
||||
srLabel,
|
||||
|
@ -34,6 +35,7 @@ Var
|
|||
dout:PsrVariable;
|
||||
dst:PsrRegNode;
|
||||
src:array[0..3] of PsrRegNode;
|
||||
rsl:array[0..3] of PsrRegNode;
|
||||
rtype:TsrDataType;
|
||||
f,i,p:Byte;
|
||||
|
||||
|
@ -150,10 +152,36 @@ begin
|
|||
Assert(false);
|
||||
end;
|
||||
|
||||
dst:=emit_OpMakeVec(line,dtVec4h,4,@src);
|
||||
dst^.mark_read;
|
||||
if FUseOutput16 then
|
||||
begin
|
||||
dst:=emit_OpMakeVec(line,dtVec4h,4,@src);
|
||||
dst^.mark_read;
|
||||
|
||||
dout:=FetchOutput(TpsslExportType(FSPI.EXP.TGT),dtVec4h); //output in FSPI.EXP.TGT
|
||||
rtype:=dtVec4h;
|
||||
end else
|
||||
begin
|
||||
rsl[0]:=NewReg(dtFloat32);
|
||||
rsl[1]:=NewReg(dtFloat32);
|
||||
rsl[2]:=NewReg(dtFloat32);
|
||||
rsl[3]:=NewReg(dtFloat32);
|
||||
|
||||
_emit_Op1(line,Op.OpFConvert,rsl[0],src[0]);
|
||||
_emit_Op1(line,Op.OpFConvert,rsl[1],src[1]);
|
||||
_emit_Op1(line,Op.OpFConvert,rsl[2],src[2]);
|
||||
_emit_Op1(line,Op.OpFConvert,rsl[3],src[3]);
|
||||
|
||||
rsl[0]^.mark_read;
|
||||
rsl[1]^.mark_read;
|
||||
rsl[2]^.mark_read;
|
||||
rsl[3]^.mark_read;
|
||||
|
||||
dst:=emit_OpMakeVec(line,dtVec4f,4,@rsl);
|
||||
dst^.mark_read;
|
||||
|
||||
rtype:=dtVec4f;
|
||||
end;
|
||||
|
||||
dout:=FetchOutput(TpsslExportType(FSPI.EXP.TGT),rtype); //output in FSPI.EXP.TGT
|
||||
emit_OpStore(line,dout,dst);
|
||||
end;
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ var
|
|||
FPrintSpv:Boolean;
|
||||
FUseVertexInput:Boolean;
|
||||
FUseTexelBuffer:Boolean;
|
||||
FUseOutput16:Boolean;
|
||||
|
||||
BufferCfg:TsrBufferCfg;
|
||||
end;
|
||||
|
@ -446,6 +447,7 @@ begin
|
|||
SprvEmit.FPrintAsm :=cfg.FPrintAsm;
|
||||
SprvEmit.FUseVertexInput:=cfg.FUseVertexInput;
|
||||
SprvEmit.FUseTexelBuffer:=cfg.FUseTexelBuffer;
|
||||
SprvEmit.FUseOutput16 :=cfg.FUseOutput16;
|
||||
|
||||
SprvEmit.FBuffers.cfg:=cfg.BufferCfg;
|
||||
|
||||
|
@ -500,11 +502,16 @@ begin
|
|||
'-i':cfg.FPrintInfo:=True;
|
||||
'-a':cfg.FPrintAsm:=True;
|
||||
'-p':cfg.FPrintSpv:=True;
|
||||
|
||||
'-eva':cfg.FUseVertexInput:=True;
|
||||
'-dva':cfg.FUseVertexInput:=False;
|
||||
|
||||
'-etb':cfg.FUseTexelBuffer:=True;
|
||||
'-dtb':cfg.FUseTexelBuffer:=False;
|
||||
|
||||
'-eoh':cfg.FUseOutput16:=True;
|
||||
'-doh':cfg.FUseOutput16:=False;
|
||||
|
||||
'-b':n:=0;
|
||||
|
||||
'-mubo':n:=1;//maxUniformBufferRange
|
||||
|
@ -593,7 +600,7 @@ begin
|
|||
//load_dump('shader_dump\simplet-simple-fs_debug\simplet-simple-fs_debug_ps_F327ABD1.dump');
|
||||
|
||||
//load_dump('shader_dump\simplet-single-triangle_debug\simplet-single-triangle_debug_vs_78EF9008.dump');
|
||||
//load_dump('shader_dump\simplet-single-triangle_debug\simplet-single-triangle_debug_ps_FBCA196D.dump');
|
||||
load_dump('shader_dump\simplet-single-triangle_debug\simplet-single-triangle_debug_ps_FBCA196D.dump');
|
||||
|
||||
//load_dump('shader_dump\basic_quad_debug\basic_quad_debug_ps_C342C7CD.dump');
|
||||
//load_dump('shader_dump\basic_quad_debug\basic_quad_debug_vs_D216FEB8.dump');
|
||||
|
@ -613,7 +620,7 @@ begin
|
|||
|
||||
//load_dump('shader_dump\SonicMania\SonicMania_ps_B4281DBF.dump');
|
||||
|
||||
load_dump('shader_dump\SonicMania\SonicMania_ps_11DF2A32.dump');
|
||||
//load_dump('shader_dump\SonicMania\SonicMania_ps_11DF2A32.dump');
|
||||
|
||||
//load_dump('shader_dump\SonicMania\SonicMania_ps_3CC22A00.dump'); //cfg
|
||||
end;
|
||||
|
|
|
@ -162,6 +162,7 @@ begin
|
|||
SprvEmit.FPrintAsm :=False;
|
||||
SprvEmit.FUseVertexInput:=True;
|
||||
SprvEmit.FUseTexelBuffer:=False;
|
||||
SprvEmit.FUseOutput16 :=storageInputOutput16;
|
||||
|
||||
SprvEmit.FBuffers.cfg.maxUniformBufferRange :=0; // $FFFF
|
||||
SprvEmit.FBuffers.cfg.PushConstantsOffset :=0; // 0
|
||||
|
|
Loading…
Reference in New Issue