7
0

Accepting request 1124066 from home:dziobian:gulgul-ultron:19

- Add backported crash_gpu_process_and_clear_shader_cache_when_skia_reports.patch
  * fixes “Skia shader compilation error” after some Mesa updates due to stale shader cache (bsc#1214274)

OBS-URL: https://build.opensuse.org/request/show/1124066
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs-electron?expand=0&rev=107
This commit is contained in:
2023-11-07 17:11:55 +00:00
committed by Git OBS Bridge
parent b8de22e7d6
commit 7aa978b464
3 changed files with 77 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Le Hoang Quyen <lehoangquyen@chromium.org>
Date: Tue, 31 Oct 2023 08:52:25 +0000
Subject: Crash GPU process and clear shader cache when skia reports
compileError.
Sometimes Skia failed to compile the cached GLSL because the driver had
been changed but GL_RENDERER was still the same. In this case, we better
crash the GPU process and signal the browser to clear the cache & let
Skia regenerate the GLSL in the next run.
Even if the compile failure wasn't caused by the cached GLSL. It's still
better to crash the GPU process and let the shaders be re-generated.
Because a failed compilation would have resulted in wrong rendering
even if we had allowed the process to continue its execution.
Bug: 1442633
Change-Id: Ia0e36bd4674877de5be451a6ea9c4e7fa5e34e8e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4988290
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Quyen Le <lehoangquyen@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1217461}
diff --git a/gpu/command_buffer/service/shared_context_state.cc b/gpu/command_buffer/service/shared_context_state.cc
index 63f6c33ad5f41cde0fca08d60e7e10fe1154e165..f422ec52ca74f5a636e11591ba42444773a5c682 100644
--- a/gpu/command_buffer/service/shared_context_state.cc
+++ b/gpu/command_buffer/service/shared_context_state.cc
@@ -4,6 +4,7 @@
#include "gpu/command_buffer/service/shared_context_state.h"
+#include "base/immediate_crash.h"
#include "base/observer_list.h"
#include "base/strings/stringprintf.h"
#include "base/system/sys_info.h"
@@ -101,6 +102,13 @@ void SharedContextState::compileError(const char* shader, const char* errors) {
<< "------------------------\n"
<< shader << "\nErrors:\n"
<< errors;
+
+ // Increase shader cache shm count and crash the GPU process so that the
+ // browser process would clear the cache.
+ GpuProcessShmCount::ScopedIncrement increment(
+ use_shader_cache_shm_count_.get());
+
+ base::ImmediateCrash();
}
}
@@ -305,6 +313,7 @@ bool SharedContextState::InitializeGanesh(
gl::ProgressReporter* progress_reporter) {
progress_reporter_ = progress_reporter;
gr_shader_cache_ = cache;
+ use_shader_cache_shm_count_ = use_shader_cache_shm_count;
size_t max_resource_cache_bytes;
size_t glyph_cache_max_texture_bytes;
diff --git a/gpu/command_buffer/service/shared_context_state.h b/gpu/command_buffer/service/shared_context_state.h
index 05822df27221cd5003e8c12f809805f3bd0c597b..7c21a81066afd77e310f0fdfca7da92f8f7cb4e1 100644
--- a/gpu/command_buffer/service/shared_context_state.h
+++ b/gpu/command_buffer/service/shared_context_state.h
@@ -392,6 +392,8 @@ class GPU_GLES2_EXPORT SharedContextState
std::vector<uint8_t> scratch_deserialization_buffer_;
raw_ptr<gpu::raster::GrShaderCache, DanglingUntriaged> gr_shader_cache_ =
nullptr;
+ raw_ptr<GpuProcessShmCount, DanglingUntriaged> use_shader_cache_shm_count_ =
+ nullptr;
// |need_context_state_reset| is set whenever Skia may have altered the
// driver's GL state.

View File

@@ -1,3 +1,9 @@
-------------------------------------------------------------------
Tue Nov 7 17:10:19 UTC 2023 - Bruno Pitrus <brunopitrus@hotmail.com>
- Add backported crash_gpu_process_and_clear_shader_cache_when_skia_reports.patch
* fixes “Skia shader compilation error” after some Mesa updates due to stale shader cache (bsc#1214274)
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Nov 1 20:28:50 UTC 2023 - Bruno Pitrus <brunopitrus@hotmail.com> Wed Nov 1 20:28:50 UTC 2023 - Bruno Pitrus <brunopitrus@hotmail.com>

View File

@@ -383,6 +383,7 @@ Patch3223: absl-make_unique-missing-include.patch
Patch3224: autofill_i18n_parsing_expressions-constexpr.patch Patch3224: autofill_i18n_parsing_expressions-constexpr.patch
Patch3225: simple_font_data-freetype-include.patch Patch3225: simple_font_data-freetype-include.patch
Patch3226: perfetto-numeric_storage-double_t.patch Patch3226: perfetto-numeric_storage-double_t.patch
Patch3227: crash_gpu_process_and_clear_shader_cache_when_skia_reports.patch
%if %{with clang} %if %{with clang}