You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Remove several d3d patchsets:
* wined3d-Core_Context: fixed by 62651d65f4f8e4dc6e1f4fb5d589526613d419aa * wined3d-Limit_Vram: This patch is a no-op; LONG_MAX is 0x7fffffffffffffff on 64-bit. * wined3d-Revert_Surface_Blt: fixed by d38076fd57a50452b17d61f771688bbfcd3a5563 * wined3d-WINED3DFMT_R32G32_UINT: fixed by af1be967a0b0262a980e9bfbdff107c1d6db7e8d * wined3d-sample_c_lz: fixed by ce8610cea58ed1ba9d8f17857e507d9d6c30132d * wined3d-CSMT_Helper, wined3d-CSMT_Main: Remove CSMT_Helper and remove toggle for CSMT_Main. CSMT is in Wine and configurable. Also remove patches 0008, 0019, 0034, which are no-ops and not useful. * makedep-PARENTSPEC: Remove patch which was only needed for wined3d-csmt.
This commit is contained in:
@@ -1,67 +0,0 @@
|
||||
From 443951f5ef3359b18334b50d72724f99ce77f72e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Mon, 29 Apr 2013 18:49:53 +0200
|
||||
Subject: wined3d: Send blits through the command stream.
|
||||
|
||||
This needs more work. This patch breaks error handling, and the split
|
||||
between surface_blt and surface_blt_ugly isn't particularly nice.
|
||||
---
|
||||
dlls/wined3d/device.c | 19 ++++++++++---------
|
||||
dlls/wined3d/texture.c | 10 ++++++++--
|
||||
2 files changed, 18 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index cf446c7cd17..b3fea23c821 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -4241,16 +4241,17 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
- if (dst_texture->sub_resources[dst_sub_resource_idx].map_count)
|
||||
+ if (dst_texture->sub_resources[dst_sub_resource_idx].map_count ||
|
||||
+ src_texture->sub_resources[src_sub_resource_idx].map_count)
|
||||
{
|
||||
- WARN("Destination sub-resource %u is mapped.\n", dst_sub_resource_idx);
|
||||
- return WINED3DERR_INVALIDCALL;
|
||||
- }
|
||||
-
|
||||
- if (src_texture->sub_resources[src_sub_resource_idx].map_count)
|
||||
- {
|
||||
- WARN("Source sub-resource %u is mapped.\n", src_sub_resource_idx);
|
||||
- return WINED3DERR_INVALIDCALL;
|
||||
+ struct wined3d_device *device = dst_texture->resource.device;
|
||||
+ device->cs->ops->finish(device->cs, WINED3D_CS_QUEUE_DEFAULT);
|
||||
+ if (dst_texture->sub_resources[dst_sub_resource_idx].map_count ||
|
||||
+ src_texture->sub_resources[src_sub_resource_idx].map_count)
|
||||
+ {
|
||||
+ WARN("Destination or source sub-resource is mapped.\n");
|
||||
+ return WINEDDERR_SURFACEBUSY;
|
||||
+ }
|
||||
}
|
||||
|
||||
if (!src_box)
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index a77c9835bbb..55cc49be5e0 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -3231,8 +3231,14 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned
|
||||
if (dst_texture->sub_resources[dst_sub_resource_idx].map_count
|
||||
|| src_texture->sub_resources[src_sub_resource_idx].map_count)
|
||||
{
|
||||
- WARN("Sub-resource is busy, returning WINEDDERR_SURFACEBUSY.\n");
|
||||
- return WINEDDERR_SURFACEBUSY;
|
||||
+ struct wined3d_device *device = dst_texture->resource.device;
|
||||
+ device->cs->ops->finish(device->cs, WINED3D_CS_QUEUE_DEFAULT);
|
||||
+ if (dst_texture->sub_resources[dst_sub_resource_idx].map_count
|
||||
+ || (src_texture && src_texture->sub_resources[src_sub_resource_idx].map_count))
|
||||
+ {
|
||||
+ WARN("Sub-resource is busy, returning WINEDDERR_SURFACEBUSY.\n");
|
||||
+ return WINEDDERR_SURFACEBUSY;
|
||||
+ }
|
||||
}
|
||||
|
||||
if ((src_format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL))
|
||||
--
|
||||
2.12.2
|
||||
|
@@ -1,293 +0,0 @@
|
||||
From fda0041ebe98a2da3a43dad2443812406f2eafd4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Fri, 30 Aug 2013 17:00:35 +0200
|
||||
Subject: [PATCH] wined3d: Wrap GL BOs in a structure
|
||||
|
||||
The idea is to use those structures for mapping through the command stream and caching
|
||||
them for DISCARD maps.
|
||||
---
|
||||
dlls/wined3d/device.c | 53 ++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/wined3d/surface.c | 2 +-
|
||||
dlls/wined3d/texture.c | 55 ++++++++++++++++++++----------------------
|
||||
dlls/wined3d/wined3d_private.h | 14 ++++++++++-
|
||||
4 files changed, 93 insertions(+), 31 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 9472ffa..656febf 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -5307,3 +5307,56 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
else
|
||||
return CallWindowProcA(proc, window, message, wparam, lparam);
|
||||
}
|
||||
+
|
||||
+/* Context activation is done by the caller */
|
||||
+struct wined3d_gl_bo *wined3d_device_get_bo(struct wined3d_device *device, UINT size, GLenum gl_usage,
|
||||
+ GLenum type_hint, struct wined3d_context *context)
|
||||
+{
|
||||
+ struct wined3d_gl_bo *ret;
|
||||
+ const struct wined3d_gl_info *gl_info;
|
||||
+
|
||||
+ TRACE("device %p, size %u, gl_usage %u, type_hint %u\n", device, size, gl_usage,
|
||||
+ type_hint);
|
||||
+
|
||||
+ ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*ret));
|
||||
+ if(!ret)
|
||||
+ return NULL;
|
||||
+ ret->type_hint = type_hint;
|
||||
+ ret->size = size;
|
||||
+ ret->usage = gl_usage;
|
||||
+
|
||||
+ gl_info = context->gl_info;
|
||||
+
|
||||
+ GL_EXTCALL(glGenBuffers(1, &ret->name));
|
||||
+ if (type_hint == GL_ELEMENT_ARRAY_BUFFER)
|
||||
+ context_invalidate_state(context, STATE_INDEXBUFFER);
|
||||
+ GL_EXTCALL(glBindBuffer(type_hint, ret->name));
|
||||
+ GL_EXTCALL(glBufferData(type_hint, size, NULL, gl_usage));
|
||||
+ GL_EXTCALL(glBindBuffer(type_hint, 0));
|
||||
+ checkGLcall("Create buffer object");
|
||||
+
|
||||
+ TRACE("Successfully created and set up buffer %u\n", ret->name);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+/* Context activation is done by the caller */
|
||||
+static void wined3d_device_destroy_bo(struct wined3d_device *device, const struct wined3d_context *context,
|
||||
+ struct wined3d_gl_bo *bo)
|
||||
+{
|
||||
+ const struct wined3d_gl_info *gl_info = context->gl_info;
|
||||
+ TRACE("device %p, bo %p, GL bo %u\n", device, bo, bo->name);
|
||||
+
|
||||
+ GL_EXTCALL(glDeleteBuffers(1, &bo->name));
|
||||
+ checkGLcall("glDeleteBuffers");
|
||||
+
|
||||
+ HeapFree(GetProcessHeap(), 0, bo);
|
||||
+}
|
||||
+
|
||||
+/* Context activation is done by the caller */
|
||||
+void wined3d_device_release_bo(struct wined3d_device *device, struct wined3d_gl_bo *bo,
|
||||
+ const struct wined3d_context *context)
|
||||
+{
|
||||
+ TRACE("device %p, bo %p, GL bo %u\n", device, bo, bo->name);
|
||||
+
|
||||
+ wined3d_device_destroy_bo(device, context, bo);
|
||||
+}
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 30f4936..a27b623 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -2232,7 +2232,7 @@ BOOL texture2d_load_texture(struct wined3d_texture *texture, unsigned int sub_re
|
||||
/* Don't use PBOs for converted surfaces. During PBO conversion we look at
|
||||
* WINED3D_TEXTURE_CONVERTED but it isn't set (yet) in all cases it is
|
||||
* getting called. */
|
||||
- if (conversion && sub_resource->buffer_object)
|
||||
+ if (conversion && sub_resource->buffer)
|
||||
{
|
||||
TRACE("Removing the pbo attached to texture %p, %u.\n", texture, sub_resource_idx);
|
||||
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index 526bfb1..89313ca 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -321,7 +321,7 @@ void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int su
|
||||
if (locations & WINED3D_LOCATION_BUFFER)
|
||||
{
|
||||
data->addr = NULL;
|
||||
- data->buffer_object = sub_resource->buffer_object;
|
||||
+ data->buffer_object = sub_resource->buffer->name;
|
||||
return;
|
||||
}
|
||||
if (locations & WINED3D_LOCATION_USER_MEMORY)
|
||||
@@ -345,18 +345,17 @@ void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int su
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
static void wined3d_texture_remove_buffer_object(struct wined3d_texture *texture,
|
||||
- unsigned int sub_resource_idx, const struct wined3d_gl_info *gl_info)
|
||||
+ unsigned int sub_resource_idx, struct wined3d_context *context)
|
||||
{
|
||||
- GLuint *buffer_object = &texture->sub_resources[sub_resource_idx].buffer_object;
|
||||
+ struct wined3d_gl_bo *buffer = texture->sub_resources[sub_resource_idx].buffer;
|
||||
+ GLuint name = buffer->name;
|
||||
|
||||
- GL_EXTCALL(glDeleteBuffers(1, buffer_object));
|
||||
- checkGLcall("glDeleteBuffers");
|
||||
+ wined3d_device_release_bo(texture->resource.device, buffer, context);
|
||||
+ texture->sub_resources[sub_resource_idx].buffer = NULL;
|
||||
+ wined3d_texture_invalidate_location(texture, sub_resource_idx, WINED3D_LOCATION_BUFFER);
|
||||
|
||||
TRACE("Deleted buffer object %u for texture %p, sub-resource %u.\n",
|
||||
- *buffer_object, texture, sub_resource_idx);
|
||||
-
|
||||
- wined3d_texture_invalidate_location(texture, sub_resource_idx, WINED3D_LOCATION_BUFFER);
|
||||
- *buffer_object = 0;
|
||||
+ name, texture, sub_resource_idx);
|
||||
}
|
||||
|
||||
static void wined3d_texture_update_map_binding(struct wined3d_texture *texture)
|
||||
@@ -376,7 +375,7 @@ static void wined3d_texture_update_map_binding(struct wined3d_texture *texture)
|
||||
&& !wined3d_texture_load_location(texture, i, context, map_binding))
|
||||
ERR("Failed to load location %s.\n", wined3d_debug_location(map_binding));
|
||||
if (texture->resource.map_binding == WINED3D_LOCATION_BUFFER)
|
||||
- wined3d_texture_remove_buffer_object(texture, i, context->gl_info);
|
||||
+ wined3d_texture_remove_buffer_object(texture, i, context);
|
||||
}
|
||||
|
||||
if (context)
|
||||
@@ -719,17 +718,17 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture)
|
||||
const struct wined3d_gl_info *gl_info = NULL;
|
||||
struct wined3d_context *context = NULL;
|
||||
struct wined3d_dc_info *dc_info;
|
||||
- GLuint buffer_object;
|
||||
+ struct wined3d_gl_bo *buffer;
|
||||
unsigned int i;
|
||||
|
||||
TRACE("texture %p.\n", texture);
|
||||
|
||||
for (i = 0; i < sub_count; ++i)
|
||||
{
|
||||
- if (!(buffer_object = texture->sub_resources[i].buffer_object))
|
||||
+ if (!(buffer = texture->sub_resources[i].buffer))
|
||||
continue;
|
||||
|
||||
- TRACE("Deleting buffer object %u.\n", buffer_object);
|
||||
+ TRACE("Deleting buffer object %u.\n", buffer->name);
|
||||
|
||||
/* We may not be able to get a context in wined3d_texture_cleanup() in
|
||||
* general, but if a buffer object was previously created we can. */
|
||||
@@ -739,7 +738,8 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture)
|
||||
gl_info = context->gl_info;
|
||||
}
|
||||
|
||||
- GL_EXTCALL(glDeleteBuffers(1, &buffer_object));
|
||||
+ wined3d_device_release_bo(device, buffer, context);
|
||||
+ texture->sub_resources[i].buffer = NULL;
|
||||
}
|
||||
|
||||
if (!context && !list_empty(&texture->renderbuffers))
|
||||
@@ -1545,22 +1545,19 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *texture,
|
||||
- unsigned int sub_resource_idx, const struct wined3d_gl_info *gl_info)
|
||||
+ unsigned int sub_resource_idx, struct wined3d_context *context)
|
||||
{
|
||||
struct wined3d_texture_sub_resource *sub_resource;
|
||||
|
||||
sub_resource = &texture->sub_resources[sub_resource_idx];
|
||||
- if (sub_resource->buffer_object)
|
||||
+ if (sub_resource->buffer)
|
||||
return;
|
||||
|
||||
- GL_EXTCALL(glGenBuffers(1, &sub_resource->buffer_object));
|
||||
- GL_EXTCALL(glBindBuffer(GL_PIXEL_UNPACK_BUFFER, sub_resource->buffer_object));
|
||||
- GL_EXTCALL(glBufferData(GL_PIXEL_UNPACK_BUFFER, sub_resource->size, NULL, GL_STREAM_DRAW));
|
||||
- GL_EXTCALL(glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0));
|
||||
- checkGLcall("Create buffer object");
|
||||
+ sub_resource->buffer = wined3d_device_get_bo(texture->resource.device,
|
||||
+ sub_resource->size, GL_STREAM_DRAW, GL_PIXEL_UNPACK_BUFFER, context);
|
||||
|
||||
TRACE("Created buffer object %u for texture %p, sub-resource %u.\n",
|
||||
- sub_resource->buffer_object, texture, sub_resource_idx);
|
||||
+ sub_resource->buffer->name, texture, sub_resource_idx);
|
||||
}
|
||||
|
||||
static void wined3d_texture_force_reload(struct wined3d_texture *texture)
|
||||
@@ -1695,7 +1692,7 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned
|
||||
return TRUE;
|
||||
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
- wined3d_texture_prepare_buffer_object(texture, sub_resource_idx, context->gl_info);
|
||||
+ wined3d_texture_prepare_buffer_object(texture, sub_resource_idx, context);
|
||||
return TRUE;
|
||||
|
||||
case WINED3D_LOCATION_TEXTURE_RGB:
|
||||
@@ -2073,8 +2070,8 @@ static void wined3d_texture_unload(struct wined3d_resource *resource)
|
||||
wined3d_texture_invalidate_location(texture, i, ~WINED3D_LOCATION_DISCARDED);
|
||||
}
|
||||
|
||||
- if (sub_resource->buffer_object)
|
||||
- wined3d_texture_remove_buffer_object(texture, i, context->gl_info);
|
||||
+ if (sub_resource->buffer)
|
||||
+ wined3d_texture_remove_buffer_object(texture, i, context);
|
||||
}
|
||||
|
||||
LIST_FOR_EACH_ENTRY_SAFE(entry, entry2, &texture->renderbuffers, struct wined3d_renderbuffer_entry, entry)
|
||||
@@ -2372,7 +2369,7 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
}
|
||||
else if (sub_resource->locations & WINED3D_LOCATION_BUFFER)
|
||||
{
|
||||
- struct wined3d_const_bo_address data = {sub_resource->buffer_object, NULL};
|
||||
+ struct wined3d_const_bo_address data = {sub_resource->buffer->name, NULL};
|
||||
struct wined3d_box src_box;
|
||||
|
||||
wined3d_texture_bind_and_dirtify(texture, context,
|
||||
@@ -2414,7 +2411,7 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
|
||||
{
|
||||
- struct wined3d_bo_address data = {sub_resource->buffer_object, NULL};
|
||||
+ struct wined3d_bo_address data = {sub_resource->buffer->name, NULL};
|
||||
|
||||
if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB)
|
||||
wined3d_texture_bind_and_dirtify(texture, context, FALSE);
|
||||
@@ -2871,7 +2868,7 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
}
|
||||
else if (sub_resource->locations & WINED3D_LOCATION_BUFFER)
|
||||
{
|
||||
- struct wined3d_const_bo_address data = {sub_resource->buffer_object, NULL};
|
||||
+ struct wined3d_const_bo_address data = {sub_resource->buffer->name, NULL};
|
||||
struct wined3d_box src_box;
|
||||
|
||||
wined3d_texture_bind_and_dirtify(texture, context,
|
||||
@@ -2921,7 +2918,7 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
|
||||
{
|
||||
- struct wined3d_bo_address data = {sub_resource->buffer_object, NULL};
|
||||
+ struct wined3d_bo_address data = {sub_resource->buffer->name, NULL};
|
||||
|
||||
if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB)
|
||||
wined3d_texture_bind_and_dirtify(texture, context, FALSE);
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index e98a100..af58836 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2896,6 +2896,14 @@ struct wined3d_dummy_textures
|
||||
GLuint tex_2d_ms_array;
|
||||
};
|
||||
|
||||
+struct wined3d_gl_bo
|
||||
+{
|
||||
+ GLuint name;
|
||||
+ GLenum usage;
|
||||
+ GLenum type_hint;
|
||||
+ UINT size;
|
||||
+};
|
||||
+
|
||||
#define WINED3D_UNMAPPED_STAGE ~0u
|
||||
|
||||
/* Multithreaded flag. Removed from the public header to signal that
|
||||
@@ -2995,6 +3003,10 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN;
|
||||
+struct wined3d_gl_bo *wined3d_device_get_bo(struct wined3d_device *device, UINT size, GLenum gl_usage,
|
||||
+ GLenum type_hint, struct wined3d_context *context) DECLSPEC_HIDDEN;
|
||||
+void wined3d_device_release_bo(struct wined3d_device *device, struct wined3d_gl_bo *bo,
|
||||
+ const struct wined3d_context *context) DECLSPEC_HIDDEN;
|
||||
|
||||
static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
|
||||
{
|
||||
@@ -3194,7 +3206,7 @@ struct wined3d_texture
|
||||
|
||||
unsigned int map_count;
|
||||
DWORD locations;
|
||||
- GLuint buffer_object;
|
||||
+ struct wined3d_gl_bo *buffer;
|
||||
} sub_resources[1];
|
||||
};
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
@@ -1,27 +0,0 @@
|
||||
From 9567ce39176fd1299f204ecc7a5254cbbe6b5484 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 4 Jul 2013 23:50:20 +0200
|
||||
Subject: [PATCH] wined3d: Don't call glFinish before swapping
|
||||
|
||||
The code is probably not ready yet, so delay this patch until everything
|
||||
is CSified. Right now I need it for performance testing.
|
||||
---
|
||||
dlls/wined3d/swapchain.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
index 26cd61e..610cc28 100644
|
||||
--- a/dlls/wined3d/swapchain.c
|
||||
+++ b/dlls/wined3d/swapchain.c
|
||||
@@ -475,7 +475,7 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain,
|
||||
if (swapchain->render_to_fbo)
|
||||
swapchain_blit(swapchain, context, src_rect, dst_rect);
|
||||
|
||||
- if (swapchain->num_contexts > 1)
|
||||
+ if (swapchain->num_contexts > 1 && !wined3d_settings.cs_multithreaded)
|
||||
gl_info->gl_ops.gl.p_glFinish();
|
||||
|
||||
/* call wglSwapBuffers through the gl table to avoid confusing the Steam overlay */
|
||||
--
|
||||
2.7.4
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,10 +1,10 @@
|
||||
# based on https://github.com/stefand/wine
|
||||
# sha1: 7309d0b07294bbceac28162201690b2132cc70fc
|
||||
|
||||
Fixes: [11674] Support for CSMT (command stream) to increase graphic performance
|
||||
Apply-After: dlls/wined3d/*
|
||||
Depends: wined3d-CSMT_Helper
|
||||
IfDefined: STAGING_CSMT
|
||||
|
||||
# Known issues:
|
||||
# https://bugs.wine-staging.com/buglist.cgi?component=Bugs&keywords=csmt%2C%20&keywords_type=allwords&list_id=3690&query_format=advanced&resolution=---
|
||||
Depends: wined3d-Accounting
|
||||
Depends: wined3d-DXTn
|
||||
Depends: wined3d-QUERY_Stubs
|
||||
Depends: d3d11-ID3D11Texture1D_Rebased
|
||||
Depends: wined3d-Silence_FIXMEs
|
||||
Depends: wined3d-UAV_Counters
|
||||
Depends: wined3d-Dual_Source_Blending
|
||||
Depends: d3d9-Tests
|
||||
Depends: d3d11-Deferred_Context
|
||||
Depends: ntdll-DllRedirects
|
||||
|
Reference in New Issue
Block a user