[DXBC/GPU] vfetch to new codegen, signed vfetch offset, fix AND with system flags

This commit is contained in:
Triang3l
2020-05-23 17:14:14 +03:00
parent e80115020e
commit 3879ff29b3
7 changed files with 411 additions and 685 deletions

View File

@@ -722,7 +722,7 @@ void DxbcShaderTranslator::StartPixelShader() {
uint32_t(CbufferRegister::kSystemConstants),
kSysConst_Flags_Vec)
.Select(kSysConst_Flags_Comp),
DxbcSrc::LU(kSysFlag_PrimitiveTwoFaced_Shift));
DxbcSrc::LU(kSysFlag_PrimitiveTwoFaced));
DxbcOpIf(true, DxbcSrc::R(param_gen_temp, DxbcSrc::kZZZZ));
{
// Negate modifier flips the sign bit even for 0 - set it to minus for
@@ -1041,7 +1041,7 @@ void DxbcShaderTranslator::CompleteVertexOrDomainShader() {
{
// Extract the killing condition.
DxbcOpAnd(temp_x_dest, flags_src,
DxbcSrc::LU(kSysFlag_KillIfAnyVertexKilled_Shift));
DxbcSrc::LU(kSysFlag_KillIfAnyVertexKilled));
DxbcOpIf(true, temp_x_src);
{
// Kill the primitive if any vertex is killed - write NaN to position.