[D3D12] ROV: Declare SV_IsFrontFace in the depth-only shader

This commit is contained in:
Triang3l 2018-10-19 12:30:01 +03:00
parent 18ef1248f9
commit 1d97fe7d53
1 changed files with 7 additions and 3 deletions

View File

@ -11919,8 +11919,12 @@ void DxbcShaderTranslator::WriteInputSignature() {
shader_object_.push_back(9); shader_object_.push_back(9);
shader_object_.push_back(1); shader_object_.push_back(1);
shader_object_.push_back(kPSInFrontFaceRegister); shader_object_.push_back(kPSInFrontFaceRegister);
if (edram_rov_used_) {
shader_object_.push_back(0x1 | (0x1 << 8));
} else {
shader_object_.push_back(0x1 | shader_object_.push_back(0x1 |
(is_depth_only_pixel_shader_ ? 0 : (0x1 << 8))); (is_depth_only_pixel_shader_ ? 0 : (0x1 << 8)));
}
// Write the semantic names. // Write the semantic names.
new_offset = (uint32_t(shader_object_.size()) - chunk_position_dwords) * new_offset = (uint32_t(shader_object_.size()) - chunk_position_dwords) *
@ -12329,7 +12333,7 @@ void DxbcShaderTranslator::WriteShaderCode() {
shader_object_.push_back(kPSInPositionRegister); shader_object_.push_back(kPSInPositionRegister);
shader_object_.push_back(ENCODE_D3D10_SB_NAME(D3D10_SB_NAME_POSITION)); shader_object_.push_back(ENCODE_D3D10_SB_NAME(D3D10_SB_NAME_POSITION));
++stat_.dcl_count; ++stat_.dcl_count;
if (!is_depth_only_pixel_shader_) { if (edram_rov_used_ || !is_depth_only_pixel_shader_) {
// Is front face. // Is front face.
shader_object_.push_back( shader_object_.push_back(
ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_DCL_INPUT_PS_SGV) | ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_DCL_INPUT_PS_SGV) |