diff options
| author | Scott Mansell <phiren@gmail.com> | 2015-11-04 13:42:49 +1300 |
|---|---|---|
| committer | Scott Mansell <phiren@gmail.com> | 2015-11-04 13:42:49 +1300 |
| commit | e161e714c76e64d7dee98c93df6e143eae73b41e (patch) | |
| tree | bdd03a63a59cd2b61c19403df9a71689e22a2353 /Source/Core/VideoBackends | |
| parent | 9cc4cffa1d3618a875b0c9070c4e26cf3074036d (diff) | |
| parent | 71d1eb3c313535b5003884bb862635d4d2f8aae9 (diff) | |
Merge pull request #3226 from Tilka/shadergen
VideoCommon: return code/uid from shader gens
Diffstat (limited to 'Source/Core/VideoBackends')
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"); } } |
