summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends
diff options
context:
space:
mode:
authorScott Mansell <phiren@gmail.com>2015-11-04 13:42:49 +1300
committerScott Mansell <phiren@gmail.com>2015-11-04 13:42:49 +1300
commite161e714c76e64d7dee98c93df6e143eae73b41e (patch)
treebdd03a63a59cd2b61c19403df9a71689e22a2353 /Source/Core/VideoBackends
parent9cc4cffa1d3618a875b0c9070c4e26cf3074036d (diff)
parent71d1eb3c313535b5003884bb862635d4d2f8aae9 (diff)
Merge pull request #3226 from Tilka/shadergen
VideoCommon: return code/uid from shader gens
Diffstat (limited to 'Source/Core/VideoBackends')
-rw-r--r--Source/Core/VideoBackends/D3D/GeometryShaderCache.cpp9
-rw-r--r--Source/Core/VideoBackends/D3D/PixelShaderCache.cpp9
-rw-r--r--Source/Core/VideoBackends/D3D/VertexShaderCache.cpp9
-rw-r--r--Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp23
4 files changed, 18 insertions, 32 deletions
diff --git a/Source/Core/VideoBackends/D3D/GeometryShaderCache.cpp b/Source/Core/VideoBackends/D3D/GeometryShaderCache.cpp
index 97db9f912a..53a74c758f 100644
--- a/Source/Core/VideoBackends/D3D/GeometryShaderCache.cpp
+++ b/Source/Core/VideoBackends/D3D/GeometryShaderCache.cpp
@@ -190,12 +190,10 @@ void GeometryShaderCache::Shutdown()
bool GeometryShaderCache::SetShader(u32 primitive_type)
{
- GeometryShaderUid uid;
- GetGeometryShaderUid(uid, primitive_type, API_D3D);
+ GeometryShaderUid uid = GetGeometryShaderUid(primitive_type, API_D3D);
if (g_ActiveConfig.bEnableShaderDebugging)
{
- ShaderCode code;
- GenerateGeometryShaderCode(code, primitive_type, API_D3D);
+ ShaderCode code = GenerateGeometryShaderCode(primitive_type, API_D3D);
geometry_uid_checker.AddToIndexAndCheck(code, uid, "Geometry", "g");
}
@@ -231,8 +229,7 @@ bool GeometryShaderCache::SetShader(u32 primitive_type)
}
// Need to compile a new shader
- ShaderCode code;
- GenerateGeometryShaderCode(code, primitive_type, API_D3D);
+ ShaderCode code = GenerateGeometryShaderCode(primitive_type, API_D3D);
D3DBlob* pbytecode;
if (!D3D::CompileGeometryShader(code.GetBuffer(), &pbytecode))
diff --git a/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp b/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp
index c361a25835..d1013c5539 100644
--- a/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp
+++ b/Source/Core/VideoBackends/D3D/PixelShaderCache.cpp
@@ -527,12 +527,10 @@ void PixelShaderCache::Shutdown()
bool PixelShaderCache::SetShader(DSTALPHA_MODE dstAlphaMode)
{
- PixelShaderUid uid;
- GetPixelShaderUid(uid, dstAlphaMode, API_D3D);
+ PixelShaderUid uid = GetPixelShaderUid(dstAlphaMode, API_D3D);
if (g_ActiveConfig.bEnableShaderDebugging)
{
- ShaderCode code;
- GeneratePixelShaderCode(code, dstAlphaMode, API_D3D);
+ ShaderCode code = GeneratePixelShaderCode(dstAlphaMode, API_D3D);
pixel_uid_checker.AddToIndexAndCheck(code, uid, "Pixel", "p");
}
@@ -561,8 +559,7 @@ bool PixelShaderCache::SetShader(DSTALPHA_MODE dstAlphaMode)
}
// Need to compile a new shader
- ShaderCode code;
- GeneratePixelShaderCode(code, dstAlphaMode, API_D3D);
+ ShaderCode code = GeneratePixelShaderCode(dstAlphaMode, API_D3D);
D3DBlob* pbytecode;
if (!D3D::CompilePixelShader(code.GetBuffer(), &pbytecode))
diff --git a/Source/Core/VideoBackends/D3D/VertexShaderCache.cpp b/Source/Core/VideoBackends/D3D/VertexShaderCache.cpp
index 38445422b1..a518cdd4e5 100644
--- a/Source/Core/VideoBackends/D3D/VertexShaderCache.cpp
+++ b/Source/Core/VideoBackends/D3D/VertexShaderCache.cpp
@@ -186,12 +186,10 @@ void VertexShaderCache::Shutdown()
bool VertexShaderCache::SetShader()
{
- VertexShaderUid uid;
- GetVertexShaderUid(uid, API_D3D);
+ VertexShaderUid uid = GetVertexShaderUid(API_D3D);
if (g_ActiveConfig.bEnableShaderDebugging)
{
- ShaderCode code;
- GenerateVertexShaderCode(code, API_D3D);
+ ShaderCode code = GenerateVertexShaderCode(API_D3D);
vertex_uid_checker.AddToIndexAndCheck(code, uid, "Vertex", "v");
}
@@ -216,8 +214,7 @@ bool VertexShaderCache::SetShader()
return (entry.shader != nullptr);
}
- ShaderCode code;
- GenerateVertexShaderCode(code, API_D3D);
+ ShaderCode code = GenerateVertexShaderCode(API_D3D);
D3DBlob* pbytecode = nullptr;
D3D::CompileVertexShader(code.GetBuffer(), &pbytecode);
diff --git a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
index a8bc0e6e3c..93f6097f00 100644
--- a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
+++ b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
@@ -211,13 +211,11 @@ SHADER* ProgramShaderCache::SetShader(DSTALPHA_MODE dstAlphaMode, u32 primitive_
last_entry = &newentry;
newentry.in_cache = 0;
- ShaderCode vcode;
- ShaderCode pcode;
+ ShaderCode vcode = GenerateVertexShaderCode(API_OPENGL);
+ ShaderCode pcode = GeneratePixelShaderCode(dstAlphaMode, API_OPENGL);
ShaderCode gcode;
- GenerateVertexShaderCode(vcode, API_OPENGL);
- GeneratePixelShaderCode(pcode, dstAlphaMode, API_OPENGL);
if (g_ActiveConfig.backend_info.bSupportsGeometryShaders && !uid.guid.GetUidData()->IsPassthrough())
- GenerateGeometryShaderCode(gcode, primitive_type, API_OPENGL);
+ gcode = GenerateGeometryShaderCode(primitive_type, API_OPENGL);
if (g_ActiveConfig.bEnableShaderDebugging)
{
@@ -395,22 +393,19 @@ GLuint ProgramShaderCache::CompileSingleShader(GLuint type, const char* code)
void ProgramShaderCache::GetShaderId(SHADERUID* uid, DSTALPHA_MODE dstAlphaMode, u32 primitive_type)
{
- GetPixelShaderUid(uid->puid, dstAlphaMode, API_OPENGL);
- GetVertexShaderUid(uid->vuid, API_OPENGL);
- GetGeometryShaderUid(uid->guid, primitive_type, API_OPENGL);
+ uid->puid = GetPixelShaderUid(dstAlphaMode, API_OPENGL);
+ uid->vuid = GetVertexShaderUid(API_OPENGL);
+ uid->guid = GetGeometryShaderUid(primitive_type, API_OPENGL);
if (g_ActiveConfig.bEnableShaderDebugging)
{
- ShaderCode pcode;
- GeneratePixelShaderCode(pcode, dstAlphaMode, API_OPENGL);
+ ShaderCode pcode = GeneratePixelShaderCode(dstAlphaMode, API_OPENGL);
pixel_uid_checker.AddToIndexAndCheck(pcode, uid->puid, "Pixel", "p");
- ShaderCode vcode;
- GenerateVertexShaderCode(vcode, API_OPENGL);
+ ShaderCode vcode = GenerateVertexShaderCode(API_OPENGL);
vertex_uid_checker.AddToIndexAndCheck(vcode, uid->vuid, "Vertex", "v");
- ShaderCode gcode;
- GenerateGeometryShaderCode(gcode, primitive_type, API_OPENGL);
+ ShaderCode gcode = GenerateGeometryShaderCode(primitive_type, API_OPENGL);
geometry_uid_checker.AddToIndexAndCheck(gcode, uid->guid, "Geometry", "g");
}
}