From 024a1417145c830e359f83163a1f6d5c9e3a7085 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sun, 8 Jan 2017 17:50:50 +0100 Subject: [PATCH] Added patch to silence noisy FIXME in gl_stencil_op. --- patches/patchinstall.sh | 5 ++++ .../wined3d-CSMT_Main/9999-IfDefined.patch | 22 +++++++------- ...noisy-fixme-Unrecognized-stencil-op-.patch | 29 +++++++++++++++++++ patches/wined3d-Silence_FIXMEs/definition | 1 + 4 files changed, 46 insertions(+), 11 deletions(-) create mode 100644 patches/wined3d-Silence_FIXMEs/0008-wined3d-Silence-noisy-fixme-Unrecognized-stencil-op-.patch diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index fe12565a..eb26ffd1 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -7849,6 +7849,9 @@ fi # Patchset wined3d-Silence_FIXMEs # | +# | This patchset fixes the following Wine bugs: +# | * [#42140] Silence noisy FIXME in gl_stencil_op +# | # | Modified files: # | * dlls/wined3d/resource.c, dlls/wined3d/state.c, dlls/wined3d/surface.c, dlls/wined3d/swapchain.c, dlls/wined3d/texture.c # | @@ -7860,6 +7863,7 @@ if test "$enable_wined3d_Silence_FIXMEs" -eq 1; then patch_apply wined3d-Silence_FIXMEs/0005-wined3d-Silence-repeated-wined3d_swapchain_present-F.patch patch_apply wined3d-Silence_FIXMEs/0006-wined3d-Silence-extremely-noisy-FIXME-in-wined3d_tex.patch patch_apply wined3d-Silence_FIXMEs/0007-wined3d-Display-FIXME-only-once-when-blen-op-is-0.patch + patch_apply wined3d-Silence_FIXMEs/0008-wined3d-Silence-noisy-fixme-Unrecognized-stencil-op-.patch ( echo '+ { "Sebastian Lackner", "wined3d: Silence repeated '\''Unhandled blend factor 0'\'' messages.", 1 },'; echo '+ { "Christian Costa", "wined3d: Display FIXME for cmp function 0 only once.", 1 },'; @@ -7868,6 +7872,7 @@ if test "$enable_wined3d_Silence_FIXMEs" -eq 1; then echo '+ { "Sebastian Lackner", "wined3d: Silence repeated wined3d_swapchain_present FIXME.", 1 },'; echo '+ { "Sebastian Lackner", "wined3d: Silence extremely noisy FIXME in wined3d_texture_add_dirty_region.", 1 },'; echo '+ { "Christian Costa", "wined3d: Display FIXME only once when blen op is 0.", 1 },'; + echo '+ { "Christian Costa", "wined3d: Silence noisy fixme Unrecognized stencil op 0.", 1 },'; ) >> "$patchlist" fi diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index f4bf12e6..a87f6922 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -6394,7 +6394,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c /* Disable blending in all cases even without pixelshaders. * With blending on we could face a big performance penalty. -@@ -858,7 +870,11 @@ static void state_stencil(struct wined3d_context *context, const struct wined3d_ +@@ -861,7 +873,11 @@ static void state_stencil(struct wined3d_context *context, const struct wined3d_ GLint depthFail_back; /* No stencil test without a stencil buffer. */ @@ -6406,7 +6406,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c { gl_info->gl_ops.gl.p_glDisable(GL_STENCIL_TEST); checkGLcall("glDisable GL_STENCIL_TEST"); -@@ -954,7 +970,11 @@ static void state_stencil(struct wined3d_context *context, const struct wined3d_ +@@ -957,7 +973,11 @@ static void state_stencil(struct wined3d_context *context, const struct wined3d_ static void state_stencilwrite2s(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) { @@ -6418,7 +6418,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c const struct wined3d_gl_info *gl_info = context->gl_info; GL_EXTCALL(glActiveStencilFaceEXT(GL_BACK)); -@@ -968,7 +988,11 @@ static void state_stencilwrite2s(struct wined3d_context *context, const struct w +@@ -971,7 +991,11 @@ static void state_stencilwrite2s(struct wined3d_context *context, const struct w static void state_stencilwrite(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) { @@ -6430,7 +6430,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c const struct wined3d_gl_info *gl_info = context->gl_info; gl_info->gl_ops.gl.p_glStencilMask(mask); -@@ -1706,7 +1730,11 @@ static void state_depthbias(struct wined3d_context *context, const struct wined3 +@@ -1709,7 +1733,11 @@ static void state_depthbias(struct wined3d_context *context, const struct wined3 if (state->render_states[WINED3D_RS_SLOPESCALEDEPTHBIAS] || state->render_states[WINED3D_RS_DEPTHBIAS]) { @@ -6442,7 +6442,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c float scale; union -@@ -3639,7 +3667,11 @@ static void sampler(struct wined3d_context *context, const struct wined3d_state +@@ -3642,7 +3670,11 @@ static void sampler(struct wined3d_context *context, const struct wined3d_state } else { @@ -6454,7 +6454,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c { ERR("Failed to create sampler.\n"); sampler = NULL; -@@ -4620,8 +4652,13 @@ static void vertexdeclaration(struct wined3d_context *context, const struct wine +@@ -4623,8 +4655,13 @@ static void vertexdeclaration(struct wined3d_context *context, const struct wine static void viewport_miscpart(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) { @@ -6468,7 +6468,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c const struct wined3d_gl_info *gl_info = context->gl_info; struct wined3d_viewport vp = state->viewport; unsigned int width, height; -@@ -4633,7 +4670,11 @@ static void viewport_miscpart(struct wined3d_context *context, const struct wine +@@ -4636,7 +4673,11 @@ static void viewport_miscpart(struct wined3d_context *context, const struct wine if (vp.height > target->height) vp.height = target->height; @@ -6480,7 +6480,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c } else if (depth_stencil) { -@@ -4660,8 +4701,13 @@ static void viewport_miscpart(struct wined3d_context *context, const struct wine +@@ -4663,8 +4704,13 @@ static void viewport_miscpart(struct wined3d_context *context, const struct wine static void viewport_miscpart_cc(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) { @@ -6494,7 +6494,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c float pixel_center_offset = context->d3d_info->wined3d_creation_flags & WINED3D_PIXEL_CENTER_INTEGER ? 0.5f : 0.0f; const struct wined3d_gl_info *gl_info = context->gl_info; -@@ -4675,7 +4721,11 @@ static void viewport_miscpart_cc(struct wined3d_context *context, +@@ -4678,7 +4724,11 @@ static void viewport_miscpart_cc(struct wined3d_context *context, if (vp.height > target->height) vp.height = target->height; @@ -6506,7 +6506,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c } else if (depth_stencil) { -@@ -4856,11 +4906,19 @@ static void scissorrect(struct wined3d_context *context, const struct wined3d_st +@@ -4859,11 +4909,19 @@ static void scissorrect(struct wined3d_context *context, const struct wined3d_st } else { @@ -6526,7 +6526,7 @@ diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c gl_info->gl_ops.gl.p_glScissor(r->left, height - r->bottom, r->right - r->left, r->bottom - r->top); } checkGLcall("glScissor"); -@@ -4932,7 +4990,11 @@ void state_srgbwrite(struct wined3d_context *context, const struct wined3d_state +@@ -4935,7 +4993,11 @@ void state_srgbwrite(struct wined3d_context *context, const struct wined3d_state TRACE("context %p, state %p, state_id %#x.\n", context, state, state_id); diff --git a/patches/wined3d-Silence_FIXMEs/0008-wined3d-Silence-noisy-fixme-Unrecognized-stencil-op-.patch b/patches/wined3d-Silence_FIXMEs/0008-wined3d-Silence-noisy-fixme-Unrecognized-stencil-op-.patch new file mode 100644 index 00000000..56053eb4 --- /dev/null +++ b/patches/wined3d-Silence_FIXMEs/0008-wined3d-Silence-noisy-fixme-Unrecognized-stencil-op-.patch @@ -0,0 +1,29 @@ +From 7a7067db1ba6ab620bb7979ee081fb846d95016f Mon Sep 17 00:00:00 2001 +From: Christian Costa +Date: Sun, 8 Jan 2017 00:35:27 +0100 +Subject: wined3d: Silence noisy fixme Unrecognized stencil op 0. + +--- + dlls/wined3d/state.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c +index f7e36676a83..b990b31acb5 100644 +--- a/dlls/wined3d/state.c ++++ b/dlls/wined3d/state.c +@@ -848,8 +848,11 @@ static GLenum gl_stencil_op(enum wined3d_stencil_op op) + case WINED3D_STENCIL_OP_DECR: + return GL_DECR_WRAP; + default: +- FIXME("Unrecognized stencil op %#x.\n", op); ++ { ++ static int once; ++ if (op || !once++) FIXME("Unrecognized stencil op %#x.\n", op); + return GL_KEEP; ++ } + } + } + +-- +2.11.0 + diff --git a/patches/wined3d-Silence_FIXMEs/definition b/patches/wined3d-Silence_FIXMEs/definition index 08d27dae..38b52488 100644 --- a/patches/wined3d-Silence_FIXMEs/definition +++ b/patches/wined3d-Silence_FIXMEs/definition @@ -1,2 +1,3 @@ Fixes: Silence repeated FIXME message in surface_cpu_blt +Fixes: [42140] Silence noisy FIXME in gl_stencil_op Category: stable