Next 5 patches in my queue, mostly fixing issues with older GPUs / drivers.
-- v2: wined3d: Add some state table consistency checking to context_invalidate_state(). wined3d: Assert that the CS queue size is a power of two. wined3d: Allow blits with fixups in the FFP blitter without a shader backend. d3d9/tests: Fix typo. wined3d: Don't touch GL sRGB decode state when not supported.
From: Matteo Bruni mbruni@codeweavers.com
Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- dlls/wined3d/view.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c index dbd385219f0..c502fcba992 100644 --- a/dlls/wined3d/view.c +++ b/dlls/wined3d/view.c @@ -1306,7 +1306,8 @@ void wined3d_shader_resource_view_gl_generate_mipmap(struct wined3d_shader_resou if (gl_info->supported[ARB_SAMPLER_OBJECTS]) GL_EXTCALL(glBindSampler(context_gl->active_texture, 0)); gl_tex = wined3d_texture_gl_get_gl_texture(texture_gl, srgb); - if (context_gl->c.d3d_info->wined3d_creation_flags & WINED3D_SRGB_READ_WRITE_CONTROL) + if (context_gl->c.d3d_info->wined3d_creation_flags & WINED3D_SRGB_READ_WRITE_CONTROL + && gl_info->supported[EXT_TEXTURE_SRGB_DECODE]) { gl_info->gl_ops.gl.p_glTexParameteri(texture_gl->target, GL_TEXTURE_SRGB_DECODE_EXT, GL_SKIP_DECODE_EXT);
From: Matteo Bruni mbruni@codeweavers.com
Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- dlls/d3d9/tests/visual.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c index f20f1ecb369..2913583916a 100644 --- a/dlls/d3d9/tests/visual.c +++ b/dlls/d3d9/tests/visual.c @@ -1193,7 +1193,7 @@ static void clear_test(void) ok(color == 0x0000ff00, "(322,242) has color %08x\n", color);
color = getPixelColor(device, 478, 358); - ok(color == 0x0000ff00, "(478,358 has color %08x\n", color); + ok(color == 0x0000ff00, "(478,358) has color %08x\n", color); color = getPixelColor(device, 482, 358); ok(color == 0x00ffffff, "(482,358) has color %08x\n", color); color = getPixelColor(device, 478, 362);
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=115385
Your paranoid android.
=== debian11 (build log) ===
error: patch failed: dlls/wined3d/view.c:1306 error: patch failed: dlls/d3d9/tests/visual.c:1193 Task: Patch failed to apply
This merge request was approved by Alexandre Julliard.
From: Matteo Bruni mbruni@codeweavers.com
Along the lines of d37146885801ae384a1cae54edea426b7b58a6a9 but for the no shader backend case.
Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- dlls/wined3d/texture.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index 595baf07788..c952f366a68 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -5753,10 +5753,13 @@ static bool ffp_blit_supported(enum wined3d_blit_op blit_op, const struct wined3 if (!is_identity_fixup(src_format->color_fixup) || !is_identity_fixup(dst_format->color_fixup)) { - if (wined3d_settings.offscreen_rendering_mode == ORM_BACKBUFFER - && dst_format->id == src_format->id && dst_location == WINED3D_LOCATION_DRAWABLE) + if (dst_format->id == src_format->id && dst_location == WINED3D_LOCATION_DRAWABLE) { - WARN("Claiming fixup support because of ORM_BACKBUFFER.\n"); + if (wined3d_settings.offscreen_rendering_mode == ORM_BACKBUFFER) + WARN("Claiming fixup support because of ORM_BACKBUFFER.\n"); + else if (context->device->shader_backend == &none_shader_backend) + WARN("Claiming fixup support because of no shader backend.\n"); + return true; } else {
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=115386
Your paranoid android.
=== debian11 (build log) ===
error: patch failed: dlls/wined3d/view.c:1306 error: patch failed: dlls/d3d9/tests/visual.c:1193 error: patch failed: dlls/wined3d/texture.c:5753 Task: Patch failed to apply
=== debian11 (build log) ===
error: patch failed: dlls/wined3d/view.c:1306 error: patch failed: dlls/d3d9/tests/visual.c:1193 error: patch failed: dlls/wined3d/texture.c:5753 Task: Patch failed to apply
From: Matteo Bruni mbruni@codeweavers.com
Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- dlls/wined3d/wined3d_private.h | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 00d2cfea8e4..4d208260fbf 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -4976,6 +4976,8 @@ enum wined3d_push_constants #define WINED3D_CS_SPIN_COUNT 10000000u #define WINED3D_CS_QUEUE_MASK (WINED3D_CS_QUEUE_SIZE - 1)
+C_ASSERT(!(WINED3D_CS_QUEUE_SIZE & (WINED3D_CS_QUEUE_SIZE - 1))); + struct wined3d_cs_queue { ULONG head, tail;
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=115387
Your paranoid android.
=== debian11 (build log) ===
error: patch failed: dlls/wined3d/view.c:1306 error: patch failed: dlls/d3d9/tests/visual.c:1193 error: patch failed: dlls/wined3d/texture.c:5753 error: patch failed: dlls/wined3d/wined3d_private.h:4976 Task: Patch failed to apply
=== debian11 (build log) ===
error: patch failed: dlls/wined3d/view.c:1306 error: patch failed: dlls/d3d9/tests/visual.c:1193 error: patch failed: dlls/wined3d/texture.c:5753 error: patch failed: dlls/wined3d/wined3d_private.h:4976 Task: Patch failed to apply
From: Matteo Bruni mbruni@codeweavers.com
Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- dlls/wined3d/context.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index 8c4277bc7ca..f9af58936a6 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -78,6 +78,9 @@ void context_invalidate_state(struct wined3d_context *context, unsigned int stat unsigned int representative = context->state_table[state_id].representative; unsigned int index, shift;
+ if (!representative) + ERR("Invalidating representative 0, state_id %u.\n", state_id); + index = representative / (sizeof(*context->dirty_graphics_states) * CHAR_BIT); shift = representative & ((sizeof(*context->dirty_graphics_states) * CHAR_BIT) - 1); context->dirty_graphics_states[index] |= (1u << shift);
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=115388
Your paranoid android.
=== debian11 (build log) ===
error: patch failed: dlls/wined3d/view.c:1306 error: patch failed: dlls/d3d9/tests/visual.c:1193 error: patch failed: dlls/wined3d/texture.c:5753 error: patch failed: dlls/wined3d/wined3d_private.h:4976 error: patch failed: dlls/wined3d/context.c:78 Task: Patch failed to apply
=== debian11 (build log) ===
error: patch failed: dlls/wined3d/view.c:1306 error: patch failed: dlls/d3d9/tests/visual.c:1193 error: patch failed: dlls/wined3d/texture.c:5753 error: patch failed: dlls/wined3d/wined3d_private.h:4976 error: patch failed: dlls/wined3d/context.c:78 Task: Patch failed to apply