1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-01-31 14:52:11 +01:00

[dxso] Don't emit a co-issue for CNDs parented to a CND

Closes #1309
This commit is contained in:
Joshua Ashton 2019-12-25 17:43:35 +00:00
parent b4f2094c02
commit 724fe78ba1
2 changed files with 10 additions and 1 deletions

View File

@ -10,8 +10,13 @@ namespace dxvk {
const DxsoInstructionContext& ctx) {
DxsoOpcode opcode = ctx.instruction.opcode;
if (opcode == DxsoOpcode::Cnd && ctx.instruction.coissue)
// Co-issued CNDs are issued before their parents,
// except when the parent is a CND.
if (opcode == DxsoOpcode::Cnd &&
m_coissueCtx.instruction.opcode != DxsoOpcode::Cnd &&
ctx.instruction.coissue) {
m_analysis->coissues.push_back(ctx);
}
if (opcode == DxsoOpcode::TexKill)
m_analysis->usesKill = true;
@ -41,6 +46,8 @@ namespace dxvk {
//|| opcode == DxsoOpcode::TexLdl
|| opcode == DxsoOpcode::TexDepth)
m_analysis->usesDerivatives = true;
m_coissueCtx = ctx;
}
void DxsoAnalyzer::finalize(size_t tokenCount) {

View File

@ -34,6 +34,8 @@ namespace dxvk {
DxsoAnalysisInfo* m_analysis = nullptr;
DxsoInstructionContext m_coissueCtx;
};
}