Move uniform dirty-flag to gstate_c, opening up for other uses.
This commit is contained in:
parent
83b4be6848
commit
b423998c36
17 changed files with 331 additions and 324 deletions
|
@ -1208,7 +1208,7 @@ void GPUCommon::Execute_WorldMtxNum(u32 op, u32 diff) {
|
|||
if (dst[i] != newVal) {
|
||||
Flush();
|
||||
dst[i] = newVal;
|
||||
shaderManager_->DirtyUniform(DIRTY_WORLDMATRIX);
|
||||
gstate_c.DirtyUniform(DIRTY_WORLDMATRIX);
|
||||
}
|
||||
if (++i >= end) {
|
||||
break;
|
||||
|
@ -1230,7 +1230,7 @@ void GPUCommon::Execute_WorldMtxData(u32 op, u32 diff) {
|
|||
if (num < 12 && newVal != ((const u32 *)gstate.worldMatrix)[num]) {
|
||||
Flush();
|
||||
((u32 *)gstate.worldMatrix)[num] = newVal;
|
||||
shaderManager_->DirtyUniform(DIRTY_WORLDMATRIX);
|
||||
gstate_c.DirtyUniform(DIRTY_WORLDMATRIX);
|
||||
}
|
||||
num++;
|
||||
gstate.worldmtxnum = (GE_CMD_WORLDMATRIXNUMBER << 24) | (num & 0xF);
|
||||
|
@ -1248,7 +1248,7 @@ void GPUCommon::Execute_ViewMtxNum(u32 op, u32 diff) {
|
|||
if (dst[i] != newVal) {
|
||||
Flush();
|
||||
dst[i] = newVal;
|
||||
shaderManager_->DirtyUniform(DIRTY_VIEWMATRIX);
|
||||
gstate_c.DirtyUniform(DIRTY_VIEWMATRIX);
|
||||
}
|
||||
if (++i >= end) {
|
||||
break;
|
||||
|
@ -1270,7 +1270,7 @@ void GPUCommon::Execute_ViewMtxData(u32 op, u32 diff) {
|
|||
if (num < 12 && newVal != ((const u32 *)gstate.viewMatrix)[num]) {
|
||||
Flush();
|
||||
((u32 *)gstate.viewMatrix)[num] = newVal;
|
||||
shaderManager_->DirtyUniform(DIRTY_VIEWMATRIX);
|
||||
gstate_c.DirtyUniform(DIRTY_VIEWMATRIX);
|
||||
}
|
||||
num++;
|
||||
gstate.viewmtxnum = (GE_CMD_VIEWMATRIXNUMBER << 24) | (num & 0xF);
|
||||
|
@ -1288,7 +1288,7 @@ void GPUCommon::Execute_ProjMtxNum(u32 op, u32 diff) {
|
|||
if (dst[i] != newVal) {
|
||||
Flush();
|
||||
dst[i] = newVal;
|
||||
shaderManager_->DirtyUniform(DIRTY_PROJMATRIX);
|
||||
gstate_c.DirtyUniform(DIRTY_PROJMATRIX);
|
||||
}
|
||||
if (++i >= end) {
|
||||
break;
|
||||
|
@ -1310,7 +1310,7 @@ void GPUCommon::Execute_ProjMtxData(u32 op, u32 diff) {
|
|||
if (newVal != ((const u32 *)gstate.projMatrix)[num]) {
|
||||
Flush();
|
||||
((u32 *)gstate.projMatrix)[num] = newVal;
|
||||
shaderManager_->DirtyUniform(DIRTY_PROJMATRIX);
|
||||
gstate_c.DirtyUniform(DIRTY_PROJMATRIX);
|
||||
}
|
||||
num++;
|
||||
gstate.projmtxnum = (GE_CMD_PROJMATRIXNUMBER << 24) | (num & 0xF);
|
||||
|
@ -1328,7 +1328,7 @@ void GPUCommon::Execute_TgenMtxNum(u32 op, u32 diff) {
|
|||
if (dst[i] != newVal) {
|
||||
Flush();
|
||||
dst[i] = newVal;
|
||||
shaderManager_->DirtyUniform(DIRTY_TEXMATRIX);
|
||||
gstate_c.DirtyUniform(DIRTY_TEXMATRIX);
|
||||
}
|
||||
if (++i >= end) {
|
||||
break;
|
||||
|
@ -1350,7 +1350,7 @@ void GPUCommon::Execute_TgenMtxData(u32 op, u32 diff) {
|
|||
if (num < 12 && newVal != ((const u32 *)gstate.tgenMatrix)[num]) {
|
||||
Flush();
|
||||
((u32 *)gstate.tgenMatrix)[num] = newVal;
|
||||
shaderManager_->DirtyUniform(DIRTY_TEXMATRIX);
|
||||
gstate_c.DirtyUniform(DIRTY_TEXMATRIX);
|
||||
}
|
||||
num++;
|
||||
gstate.texmtxnum = (GE_CMD_TGENMATRIXNUMBER << 24) | (num & 0xF);
|
||||
|
@ -1378,7 +1378,7 @@ void GPUCommon::Execute_BoneMtxNum(u32 op, u32 diff) {
|
|||
|
||||
const int numPlusCount = (op & 0x7F) + i;
|
||||
for (int num = op & 0x7F; num < numPlusCount; num += 12) {
|
||||
shaderManager_->DirtyUniform(DIRTY_BONEMATRIX0 << (num / 12));
|
||||
gstate_c.DirtyUniform(DIRTY_BONEMATRIX0 << (num / 12));
|
||||
}
|
||||
} else {
|
||||
while ((src[i] >> 24) == GE_CMD_BONEMATRIXDATA) {
|
||||
|
@ -1410,7 +1410,7 @@ void GPUCommon::Execute_BoneMtxData(u32 op, u32 diff) {
|
|||
// Bone matrices should NOT flush when software skinning is enabled!
|
||||
if (!g_Config.bSoftwareSkinning || (gstate.vertType & GE_VTYPE_MORPHCOUNT_MASK) != 0) {
|
||||
Flush();
|
||||
shaderManager_->DirtyUniform(DIRTY_BONEMATRIX0 << (num / 12));
|
||||
gstate_c.DirtyUniform(DIRTY_BONEMATRIX0 << (num / 12));
|
||||
} else {
|
||||
gstate_c.deferredVertTypeDirty |= DIRTY_BONEMATRIX0 << (num / 12);
|
||||
}
|
||||
|
@ -1477,7 +1477,7 @@ void GPUCommon::FastLoadBoneMatrix(u32 target) {
|
|||
|
||||
if (!g_Config.bSoftwareSkinning || (gstate.vertType & GE_VTYPE_MORPHCOUNT_MASK) != 0) {
|
||||
Flush();
|
||||
shaderManager_->DirtyUniform(uniformsToDirty);
|
||||
gstate_c.DirtyUniform(uniformsToDirty);
|
||||
} else {
|
||||
gstate_c.deferredVertTypeDirty |= uniformsToDirty;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue