mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
No reason to involve the FPU when loading matrices
This commit is contained in:
parent
6976d6a3a0
commit
f0cacf46d0
1 changed files with 15 additions and 15 deletions
|
@ -1187,9 +1187,9 @@ void GLES_GPU::ExecuteOpInternal(u32 op, u32 diff) {
|
||||||
case GE_CMD_LDC0:case GE_CMD_LDC1:case GE_CMD_LDC2:case GE_CMD_LDC3:
|
case GE_CMD_LDC0:case GE_CMD_LDC1:case GE_CMD_LDC2:case GE_CMD_LDC3:
|
||||||
case GE_CMD_LSC0:case GE_CMD_LSC1:case GE_CMD_LSC2:case GE_CMD_LSC3:
|
case GE_CMD_LSC0:case GE_CMD_LSC1:case GE_CMD_LSC2:case GE_CMD_LSC3:
|
||||||
if (diff) {
|
if (diff) {
|
||||||
float r = (float)(data & 0xff)/255.0f;
|
float r = (float)(data & 0xff) * (1.0f / 255.0f);
|
||||||
float g = (float)((data>>8) & 0xff)/255.0f;
|
float g = (float)((data >> 8) & 0xff) * (1.0f / 255.0f);
|
||||||
float b = (float)(data>>16)/255.0f;
|
float b = (float)(data >> 16) * (1.0f / 255.0f);
|
||||||
|
|
||||||
int l = (cmd - GE_CMD_LAC0) / 3;
|
int l = (cmd - GE_CMD_LAC0) / 3;
|
||||||
int t = (cmd - GE_CMD_LAC0) % 3;
|
int t = (cmd - GE_CMD_LAC0) % 3;
|
||||||
|
@ -1318,10 +1318,10 @@ void GLES_GPU::ExecuteOpInternal(u32 op, u32 diff) {
|
||||||
case GE_CMD_WORLDMATRIXDATA:
|
case GE_CMD_WORLDMATRIXDATA:
|
||||||
{
|
{
|
||||||
int num = gstate.worldmtxnum & 0xF;
|
int num = gstate.worldmtxnum & 0xF;
|
||||||
float newVal = getFloat24(data);
|
u32 newVal = data << 8;
|
||||||
if (num < 12 && newVal != gstate.worldMatrix[num]) {
|
if (num < 12 && newVal != ((const u32 *)gstate.worldMatrix)[num]) {
|
||||||
Flush();
|
Flush();
|
||||||
gstate.worldMatrix[num] = newVal;
|
((u32 *)gstate.worldMatrix)[num] = newVal;
|
||||||
shaderManager_->DirtyUniform(DIRTY_WORLDMATRIX);
|
shaderManager_->DirtyUniform(DIRTY_WORLDMATRIX);
|
||||||
}
|
}
|
||||||
num++;
|
num++;
|
||||||
|
@ -1336,10 +1336,10 @@ void GLES_GPU::ExecuteOpInternal(u32 op, u32 diff) {
|
||||||
case GE_CMD_VIEWMATRIXDATA:
|
case GE_CMD_VIEWMATRIXDATA:
|
||||||
{
|
{
|
||||||
int num = gstate.viewmtxnum & 0xF;
|
int num = gstate.viewmtxnum & 0xF;
|
||||||
float newVal = getFloat24(data);
|
u32 newVal = data << 8;
|
||||||
if (num < 12 && newVal != gstate.viewMatrix[num]) {
|
if (num < 12 && newVal != ((const u32 *)gstate.viewMatrix)[num]) {
|
||||||
Flush();
|
Flush();
|
||||||
gstate.viewMatrix[num] = newVal;
|
((u32 *)gstate.viewMatrix)[num] = newVal;
|
||||||
shaderManager_->DirtyUniform(DIRTY_VIEWMATRIX);
|
shaderManager_->DirtyUniform(DIRTY_VIEWMATRIX);
|
||||||
}
|
}
|
||||||
num++;
|
num++;
|
||||||
|
@ -1354,10 +1354,10 @@ void GLES_GPU::ExecuteOpInternal(u32 op, u32 diff) {
|
||||||
case GE_CMD_PROJMATRIXDATA:
|
case GE_CMD_PROJMATRIXDATA:
|
||||||
{
|
{
|
||||||
int num = gstate.projmtxnum & 0xF;
|
int num = gstate.projmtxnum & 0xF;
|
||||||
float newVal = getFloat24(data);
|
u32 newVal = data << 8;
|
||||||
if (newVal != gstate.projMatrix[num]) {
|
if (newVal != ((const u32 *)gstate.projMatrix)[num]) {
|
||||||
Flush();
|
Flush();
|
||||||
gstate.projMatrix[num] = newVal;
|
((u32 *)gstate.projMatrix)[num] = newVal;
|
||||||
shaderManager_->DirtyUniform(DIRTY_PROJMATRIX);
|
shaderManager_->DirtyUniform(DIRTY_PROJMATRIX);
|
||||||
}
|
}
|
||||||
num++;
|
num++;
|
||||||
|
@ -1372,10 +1372,10 @@ void GLES_GPU::ExecuteOpInternal(u32 op, u32 diff) {
|
||||||
case GE_CMD_TGENMATRIXDATA:
|
case GE_CMD_TGENMATRIXDATA:
|
||||||
{
|
{
|
||||||
int num = gstate.texmtxnum & 0xF;
|
int num = gstate.texmtxnum & 0xF;
|
||||||
float newVal = getFloat24(data);
|
u32 newVal = data << 8;
|
||||||
if (num < 12 && newVal != gstate.tgenMatrix[num]) {
|
if (num < 12 && newVal != ((const u32 *)gstate.tgenMatrix)[num]) {
|
||||||
Flush();
|
Flush();
|
||||||
gstate.tgenMatrix[num] = newVal;
|
((u32 *)gstate.tgenMatrix)[num] = newVal;
|
||||||
shaderManager_->DirtyUniform(DIRTY_TEXMATRIX);
|
shaderManager_->DirtyUniform(DIRTY_TEXMATRIX);
|
||||||
}
|
}
|
||||||
num++;
|
num++;
|
||||||
|
|
Loading…
Add table
Reference in a new issue