mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Merge pull request #18132 from hrydgard/assorted-fixes-5
Add reporting for GLSL shader gen errors
This commit is contained in:
commit
4ffea9f900
3 changed files with 10 additions and 7 deletions
|
@ -753,7 +753,7 @@ Shader *ShaderManagerGLES::CompileFragmentShader(FShaderID FSID) {
|
|||
std::string errorString;
|
||||
FragmentShaderFlags flags;
|
||||
if (!GenerateFragmentShader(FSID, codeBuffer_, draw_->GetShaderLanguageDesc(), draw_->GetBugs(), &uniformMask, &flags, &errorString)) {
|
||||
ERROR_LOG(G3D, "Shader gen error: %s", errorString.c_str());
|
||||
ERROR_LOG_REPORT(G3D, "FS shader gen error: %s (%s: %08x:%08x)", errorString.c_str(), "GLES", FSID.d[0], FSID.d[1]);
|
||||
return nullptr;
|
||||
}
|
||||
_assert_msg_(strlen(codeBuffer_) < CODE_BUFFER_SIZE, "FS length error: %d", (int)strlen(codeBuffer_));
|
||||
|
@ -769,7 +769,7 @@ Shader *ShaderManagerGLES::CompileVertexShader(VShaderID VSID) {
|
|||
std::string errorString;
|
||||
VertexShaderFlags flags;
|
||||
if (!GenerateVertexShader(VSID, codeBuffer_, draw_->GetShaderLanguageDesc(), draw_->GetBugs(), &attrMask, &uniformMask, &flags, &errorString)) {
|
||||
ERROR_LOG(G3D, "Shader gen error: %s", errorString.c_str());
|
||||
ERROR_LOG_REPORT(G3D, "VS shader gen error: %s (%s: %08x:%08x)", errorString.c_str(), "GLES", VSID.d[0], VSID.d[1]);
|
||||
return nullptr;
|
||||
}
|
||||
_assert_msg_(strlen(codeBuffer_) < CODE_BUFFER_SIZE, "VS length error: %d", (int)strlen(codeBuffer_));
|
||||
|
@ -1099,7 +1099,7 @@ bool ShaderManagerGLES::ContinuePrecompile(float sliceTime) {
|
|||
}
|
||||
|
||||
Shader *vs = CompileVertexShader(id);
|
||||
if (vs->Failed()) {
|
||||
if (!vs || vs->Failed()) {
|
||||
// Give up on using the cache, just bail. We can't safely create the fallback shaders here
|
||||
// without trying to deduce the vertType from the VSID.
|
||||
ERROR_LOG(G3D, "Failed to compile a vertex shader loading from cache. Skipping rest of shader cache.");
|
||||
|
|
|
@ -591,7 +591,7 @@ bool ShaderManagerVulkan::LoadCache(FILE *f) {
|
|||
uint64_t uniformMask = 0;
|
||||
VertexShaderFlags flags;
|
||||
if (!GenerateVertexShader(id, codeBuffer_, compat_, draw_->GetBugs(), &attributeMask, &uniformMask, &flags, &genErrorString)) {
|
||||
WARN_LOG(G3D, "Failed to generate vertex shader during cache load");
|
||||
ERROR_LOG(G3D, "Failed to generate vertex shader during cache load");
|
||||
// We just ignore this one and carry on.
|
||||
failCount++;
|
||||
continue;
|
||||
|
@ -619,7 +619,7 @@ bool ShaderManagerVulkan::LoadCache(FILE *f) {
|
|||
uint64_t uniformMask = 0;
|
||||
FragmentShaderFlags flags;
|
||||
if (!GenerateFragmentShader(id, codeBuffer_, compat_, draw_->GetBugs(), &uniformMask, &flags, &genErrorString)) {
|
||||
WARN_LOG(G3D, "Failed to generate fragment shader during cache load");
|
||||
ERROR_LOG(G3D, "Failed to generate fragment shader during cache load");
|
||||
// We just ignore this one and carry on.
|
||||
failCount++;
|
||||
continue;
|
||||
|
@ -643,7 +643,7 @@ bool ShaderManagerVulkan::LoadCache(FILE *f) {
|
|||
}
|
||||
std::string genErrorString;
|
||||
if (!GenerateGeometryShader(id, codeBuffer_, compat_, draw_->GetBugs(), &genErrorString)) {
|
||||
WARN_LOG(G3D, "Failed to generate geometry shader during cache load");
|
||||
ERROR_LOG(G3D, "Failed to generate geometry shader during cache load");
|
||||
// We just ignore this one and carry on.
|
||||
failCount++;
|
||||
continue;
|
||||
|
|
|
@ -334,6 +334,7 @@ void DrawBackground(UIContext &dc, float alpha, float x, float y, float z) {
|
|||
|
||||
if (bgTexture != nullptr) {
|
||||
dc.Flush();
|
||||
dc.Begin();
|
||||
dc.GetDrawContext()->BindTexture(0, bgTexture->GetTexture());
|
||||
dc.Draw()->DrawTexRect(dc.GetBounds(), 0, 0, 1, 1, bgColor);
|
||||
|
||||
|
@ -342,7 +343,9 @@ void DrawBackground(UIContext &dc, float alpha, float x, float y, float z) {
|
|||
} else {
|
||||
// I_BG original color: 0xFF754D24
|
||||
ImageID img = ImageID("I_BG");
|
||||
ui_draw2d.DrawImageStretch(img, dc.GetBounds(), bgColor & dc.theme->backgroundColor);
|
||||
dc.Begin();
|
||||
dc.Draw()->DrawImageStretch(img, dc.GetBounds(), bgColor & dc.theme->backgroundColor);
|
||||
dc.Flush();
|
||||
}
|
||||
|
||||
#if PPSSPP_PLATFORM(IOS)
|
||||
|
|
Loading…
Add table
Reference in a new issue