Module: wine
Branch: master
Commit: d1e00648ff6aabb5921aaac27f2c697bbe7356a5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d1e00648ff6aabb5921aaac27…
Author: Henri Verbeet <hverbeet(a)codeweavers.com>
Date: Mon Mar 26 20:28:11 2012 +0200
wined3d: Only update the drawable on surface unmap for the frontbuffer.
---
dlls/wined3d/surface.c | 8 ++------
1 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 3148473..a96db7c 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -953,12 +953,8 @@ static void surface_unmap(struct wined3d_surface *surface)
goto done;
}
- /* FIXME: The ORM_BACKBUFFER case probably isn't needed, but who knows
- * what obscure bugs in backbuffer ORM removing it will uncover. Also,
- * this should only be needed for the frontbuffer, but that requires
- * present calls to call surface_load_location() on the backbuffer.
- * Fix both of those after 1.4. */
- if (surface->container.type == WINED3D_CONTAINER_SWAPCHAIN
+ if ((surface->container.type == WINED3D_CONTAINER_SWAPCHAIN
+ && surface->container.u.swapchain->front_buffer == surface)
|| (wined3d_settings.offscreen_rendering_mode == ORM_BACKBUFFER
&& device->fb.render_targets && surface == device->fb.render_targets[0]))
{
Module: wine
Branch: master
Commit: 337b63d878bc1b927a6ac19ce79ec82de5a91474
URL: http://source.winehq.org/git/wine.git/?a=commit;h=337b63d878bc1b927a6ac19ce…
Author: Henri Verbeet <hverbeet(a)codeweavers.com>
Date: Mon Mar 26 20:28:09 2012 +0200
wined3d: Drop an Apple hack.
The hack actually breaks things on cards that do support more than 256
uniforms in GLSL.
---
dlls/wined3d/directx.c | 15 ---------------
1 files changed, 0 insertions(+), 15 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index a00a42c..e5be4ad 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -784,17 +784,8 @@ static BOOL match_fglrx(const struct wined3d_gl_info *gl_info, const char *gl_re
return gl_vendor == GL_VENDOR_FGLRX;
}
-static void quirk_arb_constants(struct wined3d_gl_info *gl_info)
-{
- TRACE_(d3d_caps)("Using ARB vs constant limit(=%u) for GLSL.\n", gl_info->limits.arb_vs_native_constants);
- gl_info->limits.glsl_vs_float_constants = gl_info->limits.arb_vs_native_constants;
- TRACE_(d3d_caps)("Using ARB ps constant limit(=%u) for GLSL.\n", gl_info->limits.arb_ps_native_constants);
- gl_info->limits.glsl_ps_float_constants = gl_info->limits.arb_ps_native_constants;
-}
-
static void quirk_apple_glsl_constants(struct wined3d_gl_info *gl_info)
{
- quirk_arb_constants(gl_info);
/* MacOS needs uniforms for relative addressing offsets. This can accumulate to quite a few uniforms.
* Beyond that the general uniform isn't optimal, so reserve a number of uniforms. 12 vec4's should
* allow 48 different offsets or other helper immediate values. */
@@ -918,12 +909,6 @@ static const struct driver_quirk quirk_table[] =
quirk_amd_dx9,
"AMD normalized texrect quirk"
},
- /* MacOS advertises more GLSL vertex shader uniforms than supported by the hardware, and if more are
- * used it falls back to software. While the compiler can detect if the shader uses all declared
- * uniforms, the optimization fails if the shader uses relative addressing. So any GLSL shader
- * using relative addressing falls back to software.
- *
- * ARB vp gives the correct amount of uniforms, so use it instead of GLSL. */
{
match_apple,
quirk_apple_glsl_constants,