Module: wine
Branch: master
Commit: 8da8dc94e27f0254cd1c21e833ef5205d310abb5
URL: https://gitlab.winehq.org/wine/wine/-/commit/8da8dc94e27f0254cd1c21e833ef52…
Author: Zebediah Figura <zfigura(a)codeweavers.com>
Date: Fri Nov 10 18:20:25 2023 -0600
wined3d: Set the active texture in sampler_texdim().
This was probably accidentally omitted in 51e64b3fe95afb3246c8690d9ea1e7b4c38ce2b4.
In practice, this is guaranteed to work anyway, since due to the state table
construction the equivalent misc handler, i.e. sampler(), is always guaranteed
to be called right before the fragment pipeline handler for each stage. However,
this is a subtle detail and best not to be depended on.
---
dlls/wined3d/utils.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index d9a051065ef..05a0ab36af8 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -6811,6 +6811,7 @@ void sampler_texdim(struct wined3d_context *context, const struct wined3d_state
if (isStateDirty(context, STATE_TEXTURESTAGE(sampler, WINED3D_TSS_COLOR_OP)))
return;
+ wined3d_context_gl_active_texture(context_gl, context_gl->gl_info, sampler);
texture_activate_dimensions(wined3d_state_get_ffp_texture(state, sampler), context_gl->gl_info);
}
Module: wine
Branch: master
Commit: 60e4722bcfeb7c528f466a925acdc05b200e0994
URL: https://gitlab.winehq.org/wine/wine/-/commit/60e4722bcfeb7c528f466a925acdc0…
Author: Zebediah Figura <zfigura(a)codeweavers.com>
Date: Fri Jul 14 16:40:10 2023 -0500
wined3d: Trigger constant update when an SRV requiring NPOT fixup is bound.
Ported from state_sampler().
This is currently relevant to the case where a d3d11 device is created with a
9.x feature level—this will have resources bound via SRVs [and will therefore
go through wined3d_context_gl_bind_shader_resources() rather than
state_sampler()] but need not support ARB_texture_non_power_of_two.
The NPOT non-requirement is explicitly called out in the d3d11 documentation,
and because we need some degree of emulation for conditional NPOT textures, we
need to hook that up for feature level 9.x d3d11 devices as well.
Looking forward, d3d 1-9 will be normalized to creating internal SRVs and
binding those through the d3d10+ path, so this will also be necessary for that
reason.
---
dlls/wined3d/context_gl.c | 12 ++++++------
dlls/wined3d/view.c | 4 ++++
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/dlls/wined3d/context_gl.c b/dlls/wined3d/context_gl.c
index 57fd182d926..bdea2879a51 100644
--- a/dlls/wined3d/context_gl.c
+++ b/dlls/wined3d/context_gl.c
@@ -4290,12 +4290,6 @@ static BOOL context_apply_draw_state(struct wined3d_context *context,
context->shader_update_mask &= 1u << WINED3D_SHADER_TYPE_COMPUTE;
}
- if (context->constant_update_mask)
- {
- device->shader_backend->shader_load_constants(device->shader_priv, context, state);
- context->constant_update_mask = 0;
- }
-
if (context->update_shader_resource_bindings)
{
for (i = 0; i < WINED3D_SHADER_TYPE_GRAPHICS_COUNT; ++i)
@@ -4317,6 +4311,12 @@ static BOOL context_apply_draw_state(struct wined3d_context *context,
if (wined3d_settings.offscreen_rendering_mode == ORM_FBO)
wined3d_context_gl_check_fbo_status(context_gl, GL_FRAMEBUFFER);
+ if (context->constant_update_mask)
+ {
+ device->shader_backend->shader_load_constants(device->shader_priv, context, state);
+ context->constant_update_mask = 0;
+ }
+
context->last_was_blit = FALSE;
context->last_was_ffp_blit = FALSE;
diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c
index 5729d5909e6..4b0ccea7bb2 100644
--- a/dlls/wined3d/view.c
+++ b/dlls/wined3d/view.c
@@ -1266,6 +1266,10 @@ void wined3d_shader_resource_view_gl_bind(struct wined3d_shader_resource_view_gl
texture_gl = wined3d_texture_gl(wined3d_texture_from_resource(view_gl->v.resource));
wined3d_texture_gl_bind(texture_gl, context_gl, FALSE);
wined3d_sampler_gl_bind(sampler_gl, unit, texture_gl, context_gl);
+
+ /* Trigger shader constant reloading (for NP2 texcoord fixup) */
+ if (!(texture_gl->t.flags & WINED3D_TEXTURE_POW2_MAT_IDENT))
+ context_gl->c.constant_update_mask |= WINED3D_SHADER_CONST_PS_NP2_FIXUP;
}
/* Context activation is done by the caller. */
Module: wine
Branch: master
Commit: 7e4985212b8efcc1d07e2ac4db469697e864c766
URL: https://gitlab.winehq.org/wine/wine/-/commit/7e4985212b8efcc1d07e2ac4db4696…
Author: Alexandros Frantzis <alexandros.frantzis(a)collabora.com>
Date: Tue Nov 7 16:18:38 2023 +0200
winewayland.drv: Forward all client surface pointer events to parent.
Set an empty input region for the client area surface, so that the
compositor forwards input events to the main/parent surface instead.
This simplifies input handling, since otherwise we would need to
implement special handling of events on the client area surface
and transform them accordingly.
---
dlls/winewayland.drv/wayland_surface.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/dlls/winewayland.drv/wayland_surface.c b/dlls/winewayland.drv/wayland_surface.c
index b83709c5a8a..5a808b3ac96 100644
--- a/dlls/winewayland.drv/wayland_surface.c
+++ b/dlls/winewayland.drv/wayland_surface.c
@@ -758,6 +758,8 @@ BOOL wayland_client_surface_release(struct wayland_client_surface *client)
*/
struct wayland_client_surface *wayland_surface_get_client(struct wayland_surface *surface)
{
+ struct wl_region *empty_region;
+
if (surface->client)
{
InterlockedIncrement(&surface->client->ref);
@@ -782,6 +784,16 @@ struct wayland_client_surface *wayland_surface_get_client(struct wayland_surface
}
wl_surface_set_user_data(surface->client->wl_surface, surface->hwnd);
+ /* Let parent handle all pointer events. */
+ empty_region = wl_compositor_create_region(process_wayland.wl_compositor);
+ if (!empty_region)
+ {
+ ERR("Failed to create wl_region\n");
+ goto err;
+ }
+ wl_surface_set_input_region(surface->client->wl_surface, empty_region);
+ wl_region_destroy(empty_region);
+
surface->client->wl_subsurface =
wl_subcompositor_get_subsurface(process_wayland.wl_subcompositor,
surface->client->wl_surface,