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
Rebase against a71128513767d44a8f42e10895578b650061bdce.
[ntdll-NtUnmapViewOfSection] Removed patch to fix behavior of UnmapViewOfFile for Win9x (accepted upstream). [shell32-FolderItems_Stub_Iface] Removed patch to implement stubbed FolderItems interface (fixed upstream).
This commit is contained in:
@@ -144,7 +144,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
|
||||
return;
|
||||
|
||||
@@ -461,8 +477,12 @@ void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *co
|
||||
@@ -460,8 +476,12 @@ void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *co
|
||||
data->buffer_object = buffer->buffer_object;
|
||||
if (!buffer->buffer_object)
|
||||
{
|
||||
@@ -157,7 +157,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
{
|
||||
buffer_create_buffer_object(buffer, context);
|
||||
if (buffer->buffer_object)
|
||||
@@ -500,7 +520,9 @@ BYTE *buffer_get_sysmem(struct wined3d_buffer *buffer, struct wined3d_context *c
|
||||
@@ -499,7 +519,9 @@ BYTE *buffer_get_sysmem(struct wined3d_buffer *buffer, struct wined3d_context *c
|
||||
|
||||
if (!wined3d_resource_allocate_sysmem(&buffer->resource))
|
||||
ERR("Failed to allocate system memory.\n");
|
||||
@@ -167,7 +167,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
|
||||
buffer_bind(buffer, context);
|
||||
GL_EXTCALL(glGetBufferSubData(buffer->buffer_type_hint, 0, buffer->resource.size, buffer->resource.heap_memory));
|
||||
@@ -674,6 +696,7 @@ drop_query:
|
||||
@@ -673,6 +695,7 @@ drop_query:
|
||||
/* The caller provides a GL context */
|
||||
static void buffer_direct_upload(struct wined3d_buffer *This, const struct wined3d_gl_info *gl_info, DWORD flags)
|
||||
{
|
||||
@@ -175,7 +175,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
UINT start = 0, len = 0;
|
||||
|
||||
/* This potentially invalidates the element array buffer binding, but the
|
||||
@@ -697,6 +720,45 @@ static void buffer_direct_upload(struct wined3d_buffer *This, const struct wined
|
||||
@@ -696,6 +719,45 @@ static void buffer_direct_upload(struct wined3d_buffer *This, const struct wined
|
||||
GL_EXTCALL(glBufferParameteriAPPLE(This->buffer_type_hint, GL_BUFFER_SERIALIZED_MODIFY_APPLE, GL_TRUE));
|
||||
checkGLcall("glBufferParameteriAPPLE(This->buffer_type_hint, GL_BUFFER_SERIALIZED_MODIFY_APPLE, GL_TRUE)");
|
||||
This->flags &= ~WINED3D_BUFFER_APPLESYNC;
|
||||
@@ -221,7 +221,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
}
|
||||
|
||||
while (This->modified_areas)
|
||||
@@ -705,12 +767,33 @@ static void buffer_direct_upload(struct wined3d_buffer *This, const struct wined
|
||||
@@ -704,12 +766,33 @@ static void buffer_direct_upload(struct wined3d_buffer *This, const struct wined
|
||||
start = This->maps[This->modified_areas].offset;
|
||||
len = This->maps[This->modified_areas].size;
|
||||
|
||||
@@ -255,7 +255,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
{
|
||||
buffer->flags &= ~(WINED3D_BUFFER_SYNC | WINED3D_BUFFER_DISCARD);
|
||||
}
|
||||
@@ -729,6 +812,14 @@ void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_conte
|
||||
@@ -728,6 +811,14 @@ void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_conte
|
||||
|
||||
TRACE("buffer %p.\n", buffer);
|
||||
|
||||
@@ -270,7 +270,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
buffer_mark_used(buffer);
|
||||
|
||||
if (!buffer->buffer_object)
|
||||
@@ -904,6 +995,7 @@ void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_conte
|
||||
@@ -903,6 +994,7 @@ void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_conte
|
||||
|
||||
void CDECL wined3d_buffer_preload(struct wined3d_buffer *buffer)
|
||||
{
|
||||
@@ -278,7 +278,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
struct wined3d_device *device = buffer->resource.device;
|
||||
|
||||
if (buffer->resource.map_count)
|
||||
@@ -913,6 +1005,12 @@ void CDECL wined3d_buffer_preload(struct wined3d_buffer *buffer)
|
||||
@@ -912,6 +1004,12 @@ void CDECL wined3d_buffer_preload(struct wined3d_buffer *buffer)
|
||||
}
|
||||
|
||||
wined3d_cs_emit_buffer_preload(device->cs, buffer);
|
||||
@@ -291,7 +291,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
}
|
||||
|
||||
struct wined3d_resource * CDECL wined3d_buffer_get_resource(struct wined3d_buffer *buffer)
|
||||
@@ -926,6 +1024,7 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
@@ -925,6 +1023,7 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
{
|
||||
LONG count;
|
||||
BYTE *base;
|
||||
@@ -299,7 +299,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
struct wined3d_device *device = buffer->resource.device;
|
||||
struct wined3d_context *context;
|
||||
|
||||
@@ -949,6 +1048,10 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
@@ -948,6 +1047,10 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
{
|
||||
wined3d_cs_emit_create_vbo(device->cs, buffer);
|
||||
}
|
||||
@@ -310,7 +310,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
|
||||
flags = wined3d_resource_sanitize_map_flags(&buffer->resource, flags);
|
||||
/* Filter redundant WINED3D_MAP_DISCARD maps. The 3DMark2001 multitexture
|
||||
@@ -957,7 +1060,11 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
@@ -956,7 +1059,11 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
* previous contents of the buffer. The r600g driver only does this when
|
||||
* the buffer is currently in use, while the proprietary NVIDIA driver
|
||||
* appears to do this unconditionally. */
|
||||
@@ -322,7 +322,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
flags &= ~WINED3D_MAP_DISCARD;
|
||||
count = ++buffer->resource.map_count;
|
||||
|
||||
@@ -968,6 +1075,7 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
@@ -967,6 +1074,7 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
* being uploaded in that case. Two such applications are Port Royale
|
||||
* and Darkstar One. */
|
||||
if (flags & WINED3D_MAP_DISCARD)
|
||||
@@ -330,7 +330,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
wined3d_cs_emit_buffer_invalidate_bo_range(device->cs, buffer, 0, 0);
|
||||
else if (!(flags & WINED3D_MAP_READONLY))
|
||||
wined3d_cs_emit_buffer_invalidate_bo_range(device->cs, buffer, offset, size);
|
||||
@@ -985,6 +1093,19 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
@@ -984,6 +1092,19 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
wined3d_cs_emit_glfinish(device->cs);
|
||||
device->cs->ops->finish(device->cs);
|
||||
}
|
||||
@@ -350,7 +350,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
|
||||
context = context_acquire(device, NULL);
|
||||
gl_info = context->gl_info;
|
||||
@@ -1030,6 +1151,7 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
@@ -1029,6 +1150,7 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
buffer_get_sysmem(buffer, context);
|
||||
}
|
||||
TRACE("New pointer is %p.\n", buffer->resource.heap_memory);
|
||||
@@ -358,7 +358,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
}
|
||||
context_release(context);
|
||||
}
|
||||
@@ -1069,6 +1191,21 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
@@ -1068,6 +1190,21 @@ HRESULT CDECL wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UIN
|
||||
}
|
||||
|
||||
base = buffer->map_ptr ? buffer->map_ptr : buffer->resource.map_heap_memory;
|
||||
@@ -380,7 +380,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
*data = base + offset;
|
||||
|
||||
TRACE("Returning memory at %p (base %p, offset %u).\n", *data, base, offset);
|
||||
@@ -1131,6 +1268,7 @@ void CDECL wined3d_buffer_unmap(struct wined3d_buffer *buffer)
|
||||
@@ -1130,6 +1267,7 @@ void CDECL wined3d_buffer_unmap(struct wined3d_buffer *buffer)
|
||||
}
|
||||
|
||||
GL_EXTCALL(glUnmapBuffer(buffer->buffer_type_hint));
|
||||
@@ -388,7 +388,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
if (wined3d_settings.cs_multithreaded)
|
||||
gl_info->gl_ops.gl.p_glFinish();
|
||||
else if (wined3d_settings.strict_draw_ordering)
|
||||
@@ -1139,6 +1277,18 @@ void CDECL wined3d_buffer_unmap(struct wined3d_buffer *buffer)
|
||||
@@ -1138,6 +1276,18 @@ void CDECL wined3d_buffer_unmap(struct wined3d_buffer *buffer)
|
||||
|
||||
buffer_clear_dirty_areas(buffer);
|
||||
buffer->map_ptr = NULL;
|
||||
@@ -407,7 +407,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1331,7 +1481,9 @@ static HRESULT buffer_init(struct wined3d_buffer *buffer, struct wined3d_device
|
||||
@@ -1330,7 +1480,9 @@ static HRESULT buffer_init(struct wined3d_buffer *buffer, struct wined3d_device
|
||||
return hr;
|
||||
}
|
||||
buffer->buffer_type_hint = bind_hint;
|
||||
@@ -417,7 +417,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
|
||||
TRACE("size %#x, usage %#x, format %s, memory @ %p, iface @ %p.\n", buffer->resource.size, buffer->resource.usage,
|
||||
debug_d3dformat(buffer->resource.format->id), buffer->resource.heap_memory, buffer);
|
||||
@@ -1367,9 +1519,11 @@ static HRESULT buffer_init(struct wined3d_buffer *buffer, struct wined3d_device
|
||||
@@ -1366,9 +1518,11 @@ static HRESULT buffer_init(struct wined3d_buffer *buffer, struct wined3d_device
|
||||
buffer->flags |= WINED3D_BUFFER_USE_BO;
|
||||
}
|
||||
|
||||
@@ -429,7 +429,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
if (!(buffer->maps = HeapAlloc(GetProcessHeap(), 0, sizeof(*buffer->maps))))
|
||||
{
|
||||
ERR("Out of memory.\n");
|
||||
@@ -1497,6 +1651,7 @@ HRESULT CDECL wined3d_buffer_create_ib(struct wined3d_device *device, UINT size,
|
||||
@@ -1496,6 +1650,7 @@ HRESULT CDECL wined3d_buffer_create_ib(struct wined3d_device *device, UINT size,
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -437,7 +437,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
|
||||
void buffer_swap_mem(struct wined3d_buffer *buffer, BYTE *mem)
|
||||
{
|
||||
@@ -1504,3 +1659,4 @@ void buffer_swap_mem(struct wined3d_buffer *buffer, BYTE *mem)
|
||||
@@ -1503,3 +1658,4 @@ void buffer_swap_mem(struct wined3d_buffer *buffer, BYTE *mem)
|
||||
buffer->resource.heap_memory = mem;
|
||||
buffer->flags |= WINED3D_BUFFER_DISCARD;
|
||||
}
|
||||
@@ -6176,7 +6176,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
||||
--- a/dlls/wined3d/utils.c
|
||||
+++ b/dlls/wined3d/utils.c
|
||||
@@ -4481,7 +4481,11 @@ void get_projection_matrix(const struct wined3d_context *context, const struct w
|
||||
@@ -4494,7 +4494,11 @@ void get_projection_matrix(const struct wined3d_context *context, const struct w
|
||||
float y_offset = context->render_offscreen
|
||||
? (center_offset - (2.0f * y) - h) / h
|
||||
: (center_offset - (2.0f * y) - h) / -h;
|
||||
@@ -6188,7 +6188,7 @@ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
|
||||
state->render_states[WINED3D_RS_ZENABLE] : WINED3D_ZB_FALSE;
|
||||
float z_scale = zenable ? 2.0f : 0.0f;
|
||||
float z_offset = zenable ? -1.0f : 0.0f;
|
||||
@@ -5278,7 +5282,11 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d
|
||||
@@ -5291,7 +5295,11 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user