mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-08-01 21:58:48 +00:00
ogl: implement useful constant buffer upload
this will remove the additional memcpy introduced in my last commit
This commit is contained in:
parent
4377618438
commit
7c14463d11
9 changed files with 75 additions and 110 deletions
|
@ -43,19 +43,6 @@ enum DSTALPHA_MODE
|
|||
DSTALPHA_DUAL_SOURCE_BLEND // Use dual-source blending
|
||||
};
|
||||
|
||||
// Annoying sure, can be removed once we get up to GLSL ~1.3
|
||||
const s_svar PSVar_Loc[] = { {C_COLORS, 4 },
|
||||
{C_KCOLORS, 4 },
|
||||
{C_ALPHA, 1 },
|
||||
{C_TEXDIMS, 8 },
|
||||
{C_ZBIAS, 2 },
|
||||
{C_INDTEXSCALE, 2 },
|
||||
{C_INDTEXMTX, 6 },
|
||||
{C_FOG, 3 },
|
||||
{C_PLIGHTS, 40 },
|
||||
{C_PMATERIALS, 4 },
|
||||
};
|
||||
|
||||
#pragma pack(1)
|
||||
struct pixel_shader_uid_data
|
||||
{
|
||||
|
|
|
@ -95,9 +95,6 @@ void PixelShaderManager::Shutdown()
|
|||
|
||||
void PixelShaderManager::SetConstants(u32 components)
|
||||
{
|
||||
if (g_ActiveConfig.backend_info.APIType == API_OPENGL && !g_ActiveConfig.backend_info.bSupportsGLSLUBO)
|
||||
dirty = true;
|
||||
|
||||
for (int i = 0; i < 2; ++i)
|
||||
{
|
||||
if (s_nColorsChanged[i])
|
||||
|
@ -359,7 +356,7 @@ void PixelShaderManager::SetConstants(u32 components)
|
|||
}
|
||||
}
|
||||
|
||||
if(dirty)
|
||||
if(dirty && g_ActiveConfig.backend_info.APIType != API_OPENGL)
|
||||
{
|
||||
g_renderer->SetMultiPSConstant4fv(0, sizeof(constants)/16, (float*) &constants);
|
||||
dirty = false;
|
||||
|
|
|
@ -53,17 +53,6 @@
|
|||
#define C_DEPTHPARAMS (C_POSTTRANSFORMMATRICES + 64)
|
||||
#define C_VENVCONST_END (C_DEPTHPARAMS + 1)
|
||||
|
||||
const s_svar VSVar_Loc[] = { {C_POSNORMALMATRIX, 6 },
|
||||
{C_PROJECTION, 4 },
|
||||
{C_MATERIALS, 4 },
|
||||
{C_LIGHTS, 40 },
|
||||
{C_TEXMATRICES, 24 },
|
||||
{C_TRANSFORMMATRICES, 64 },
|
||||
{C_NORMALMATRICES, 32 },
|
||||
{C_POSTTRANSFORMMATRICES, 64 },
|
||||
{C_DEPTHPARAMS, 1 },
|
||||
};
|
||||
|
||||
#pragma pack(1)
|
||||
|
||||
struct vertex_shader_uid_data
|
||||
|
|
|
@ -225,9 +225,6 @@ void VertexShaderManager::Dirty()
|
|||
// TODO: A cleaner way to control the matrices without making a mess in the parameters field
|
||||
void VertexShaderManager::SetConstants()
|
||||
{
|
||||
if (g_ActiveConfig.backend_info.APIType == API_OPENGL && !g_ActiveConfig.backend_info.bSupportsGLSLUBO)
|
||||
dirty = true;
|
||||
|
||||
if (nTransformMatricesChanged[0] >= 0)
|
||||
{
|
||||
int startn = nTransformMatricesChanged[0] / 4;
|
||||
|
@ -521,7 +518,7 @@ void VertexShaderManager::SetConstants()
|
|||
}
|
||||
}
|
||||
|
||||
if(dirty)
|
||||
if(dirty && g_ActiveConfig.backend_info.APIType != API_OPENGL)
|
||||
{
|
||||
dirty = false;
|
||||
g_renderer->SetMultiVSConstant4fv(0, sizeof(constants)/16, (float*) &constants);
|
||||
|
|
|
@ -132,10 +132,5 @@ inline unsigned int GetPow2(unsigned int val)
|
|||
++ret;
|
||||
return ret;
|
||||
}
|
||||
struct s_svar
|
||||
{
|
||||
const unsigned int reg;
|
||||
const unsigned int size;
|
||||
};
|
||||
|
||||
#endif // _VIDEOCOMMON_H
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue