[DXBC] Both v[#] and v[#][#] operands for HS and GS

This commit is contained in:
Triang3l
2022-05-07 16:17:17 +03:00
parent 5875f6ab31
commit e3425b242e
5 changed files with 145 additions and 150 deletions

View File

@@ -139,7 +139,7 @@ void DxbcShaderTranslator::ExportToMemory() {
in_position_used_ |= resolution_scaled_axes;
a_.OpFToU(
dxbc::Dest::R(control_temp, resolution_scaled_axes << 1),
dxbc::Src::V(uint32_t(InOutRegister::kPSInPosition), 0b0100 << 2));
dxbc::Src::V1D(uint32_t(InOutRegister::kPSInPosition), 0b0100 << 2));
dxbc::Dest resolution_scaling_temp_dest(
dxbc::Dest::R(control_temp, 0b1000));
dxbc::Src resolution_scaling_temp_src(
@@ -201,8 +201,8 @@ void DxbcShaderTranslator::ExportToMemory() {
a_.OpIEq(
dxbc::Dest::R(control_temp,
inner_condition_provided ? 0b0010 : 0b0001),
dxbc::Src::V(uint32_t(InOutRegister::kPSInFrontFaceAndSampleIndex),
dxbc::Src::kYYYY),
dxbc::Src::V1D(uint32_t(InOutRegister::kPSInFrontFaceAndSampleIndex),
dxbc::Src::kYYYY),
dxbc::Src::R(control_temp, dxbc::Src::kYYYY));
if (inner_condition_provided) {
// Merge with the previous condition in control_temp.x.