diff --git a/patches/d3dx9_36-FindNextValidTechnique/0001-d3dx9_36-Implement-ID3DXEffect_FindNextValidTechniqu.patch b/patches/d3dx9_36-FindNextValidTechnique/0001-d3dx9_36-Implement-ID3DXEffect_FindNextValidTechniqu.patch index 2b87b9c7..b1403fab 100644 --- a/patches/d3dx9_36-FindNextValidTechnique/0001-d3dx9_36-Implement-ID3DXEffect_FindNextValidTechniqu.patch +++ b/patches/d3dx9_36-FindNextValidTechnique/0001-d3dx9_36-Implement-ID3DXEffect_FindNextValidTechniqu.patch @@ -1,4 +1,4 @@ -From 2f29ecad409dd3dc746c0fbb3bb5eda00c0c9a3d Mon Sep 17 00:00:00 2001 +From 56e710b3d2b2631ee63eb1ed076a2a8af99352ad Mon Sep 17 00:00:00 2001 From: Christian Costa Date: Fri, 19 Dec 2014 22:31:46 +0100 Subject: d3dx9_36: Implement ID3DXEffect_FindNextValidTechnique + add tests. @@ -58,11 +58,11 @@ index 8dc4738360..47e79a689a 100644 static BOOL walk_parameter_dep(struct d3dx_parameter *param, walk_parameter_dep_func param_func, diff --git a/dlls/d3dx9_36/tests/effect.c b/dlls/d3dx9_36/tests/effect.c -index 9c318b49ef..b8da7bc88f 100644 +index b1f7f3ef26..95d29d0155 100644 --- a/dlls/d3dx9_36/tests/effect.c +++ b/dlls/d3dx9_36/tests/effect.c -@@ -5744,6 +5744,65 @@ static void test_cross_effect_handle(IDirect3DDevice9 *device) - effect1->lpVtbl->Release(effect1); +@@ -6111,6 +6111,65 @@ static void test_effect_shared_parameters(IDirect3DDevice9 *device) + ok(!refcount, "Effect pool was not properly freed, refcount %u.\n", refcount); } +/* @@ -127,10 +127,10 @@ index 9c318b49ef..b8da7bc88f 100644 START_TEST(effect) { HWND wnd; -@@ -5792,6 +5851,7 @@ START_TEST(effect) - test_effect_preshader_relative_addressing(device); +@@ -6160,6 +6219,7 @@ START_TEST(effect) test_effect_state_manager(device); test_cross_effect_handle(device); + test_effect_shared_parameters(device); + test_effect_technique_validation(device); count = IDirect3DDevice9_Release(device); diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index f7ed8ea3..3e72f17f 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "6c7760f2175e241b330cde0a902c96d9007922e0" + echo "cced5dfbde8b685022dd74e666f8ad4ea8473453" } # Show version information diff --git a/patches/shell32-Icons/0001-shell32-Add-support-for-extra-large-and-jumbo-icon-l.patch b/patches/shell32-Icons/0001-shell32-Add-support-for-extra-large-and-jumbo-icon-l.patch index e2ea71ea..f2a6d6d9 100644 --- a/patches/shell32-Icons/0001-shell32-Add-support-for-extra-large-and-jumbo-icon-l.patch +++ b/patches/shell32-Icons/0001-shell32-Add-support-for-extra-large-and-jumbo-icon-l.patch @@ -1,4 +1,4 @@ -From caa453b8f3d106c4b360504f1639c48fc81c26f9 Mon Sep 17 00:00:00 2001 +From 38b073ecbfe6965fb4c67e8398d447f93832956f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sun, 3 Aug 2014 02:23:44 +0200 Subject: shell32: Add support for extra large and jumbo icon lists. (v2) @@ -353,17 +353,16 @@ index bdebcba0e3..fbb8e8811a 100644 + #endif diff --git a/dlls/shell32/shellord.c b/dlls/shell32/shellord.c -index 1a67a5298c..a69eee8ac0 100644 +index 96dd33aa30..917cdee9fc 100644 --- a/dlls/shell32/shellord.c +++ b/dlls/shell32/shellord.c -@@ -2180,20 +2180,32 @@ void WINAPI SHFlushSFCache(void) +@@ -2180,19 +2180,31 @@ void WINAPI SHFlushSFCache(void) */ HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv) { - HIMAGELIST hLarge, hSmall; + HIMAGELIST hSmall, hLarge, hExtraLarge, hJumbo; HIMAGELIST hNew; - HRESULT ret = E_FAIL; - /* Wine currently only maintains large and small image lists */ - if ((iImageList != SHIL_LARGE) && (iImageList != SHIL_SMALL) && (iImageList != SHIL_SYSSMALL)) @@ -375,16 +374,16 @@ index 1a67a5298c..a69eee8ac0 100644 - return E_FAIL; + case SHIL_SMALL: + case SHIL_SYSSMALL: -+ hNew = ImageList_Duplicate( hSmall ); ++ hNew = hSmall; + break; + case SHIL_LARGE: -+ hNew = ImageList_Duplicate( hLarge ); ++ hNew = hLarge; + break; + case SHIL_EXTRALARGE: -+ hNew = ImageList_Duplicate( hExtraLarge ); ++ hNew = hExtraLarge; + break; + case SHIL_JUMBO: -+ hNew = ImageList_Duplicate( hJumbo ); ++ hNew = hJumbo; + break; + default: + FIXME("Unsupported image list %i requested\n", iImageList); @@ -392,11 +391,11 @@ index 1a67a5298c..a69eee8ac0 100644 } - Shell_GetImageLists(&hLarge, &hSmall); -- hNew = ImageList_Duplicate(iImageList == SHIL_LARGE ? hLarge : hSmall); +- hNew = (iImageList == SHIL_LARGE) ? hLarge : hSmall; - - /* Get the interface for the new image list */ - if (hNew) - { + return HIMAGELIST_QueryInterface(hNew, riid, ppv); + } + -- 2.12.2 diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index 333f49ac..fcabaa5a 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -9,7 +9,7 @@ Based on patches by: diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c -@@ -1274,6 +1274,9 @@ HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer, +@@ -1265,6 +1265,9 @@ HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer, const struct wined3d_box *box, const void *data) { UINT offset, size; @@ -19,7 +19,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c HRESULT hr; BYTE *ptr; -@@ -1288,7 +1291,14 @@ HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer, +@@ -1279,7 +1282,14 @@ HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer, size = buffer->resource.size; } @@ -1263,7 +1263,7 @@ diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c -@@ -333,7 +333,11 @@ void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int su +@@ -292,7 +292,11 @@ void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int su if (locations & WINED3D_LOCATION_BUFFER) { data->addr = NULL; @@ -1275,7 +1275,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return; } if (locations & WINED3D_LOCATION_USER_MEMORY) -@@ -434,6 +438,7 @@ static HRESULT wined3d_texture_init(struct wined3d_texture *texture, const struc +@@ -393,6 +397,7 @@ static HRESULT wined3d_texture_init(struct wined3d_texture *texture, const struc /* Context activation is done by the caller. */ static void wined3d_texture_remove_buffer_object(struct wined3d_texture *texture, @@ -1283,7 +1283,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c unsigned int sub_resource_idx, const struct wined3d_gl_info *gl_info) { GLuint *buffer_object = &texture->sub_resources[sub_resource_idx].buffer_object; -@@ -446,6 +451,19 @@ static void wined3d_texture_remove_buffer_object(struct wined3d_texture *texture +@@ -405,6 +410,19 @@ static void wined3d_texture_remove_buffer_object(struct wined3d_texture *texture wined3d_texture_invalidate_location(texture, sub_resource_idx, WINED3D_LOCATION_BUFFER); *buffer_object = 0; @@ -1303,7 +1303,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } static void wined3d_texture_update_map_binding(struct wined3d_texture *texture) -@@ -465,7 +483,11 @@ static void wined3d_texture_update_map_binding(struct wined3d_texture *texture) +@@ -424,7 +442,11 @@ 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) @@ -1315,7 +1315,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } if (context) -@@ -622,28 +644,46 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture) +@@ -581,28 +603,46 @@ static void wined3d_texture_cleanup(struct wined3d_texture *texture) unsigned int sub_count = texture->level_count * texture->layer_count; struct wined3d_device *device = texture->resource.device; struct wined3d_context *context = NULL; @@ -1362,7 +1362,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } if (context) context_release(context); -@@ -1387,6 +1427,9 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT +@@ -1338,6 +1378,9 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT if (surface->dc) { wined3d_cs_destroy_object(device->cs, texture2d_destroy_dc, surface); @@ -1372,7 +1372,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c create_dib = TRUE; } -@@ -1447,18 +1490,30 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT +@@ -1398,18 +1441,30 @@ HRESULT CDECL wined3d_texture_update_desc(struct wined3d_texture *texture, UINT wined3d_texture_invalidate_location(texture, 0, ~valid_location); if (create_dib) @@ -1403,7 +1403,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (sub_resource->buffer_object) return; -@@ -1470,6 +1525,16 @@ static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *textur +@@ -1421,6 +1476,16 @@ static void wined3d_texture_prepare_buffer_object(struct wined3d_texture *textur TRACE("Created buffer object %u for texture %p, sub-resource %u.\n", sub_resource->buffer_object, texture, sub_resource_idx); @@ -1420,7 +1420,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } static void wined3d_texture_force_reload(struct wined3d_texture *texture) -@@ -1595,7 +1660,11 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned +@@ -1546,7 +1611,11 @@ BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned return TRUE; case WINED3D_LOCATION_BUFFER: @@ -1432,7 +1432,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c return TRUE; case WINED3D_LOCATION_TEXTURE_RGB: -@@ -1896,7 +1965,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in +@@ -1847,7 +1916,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in } else if (sub_resource->locations & WINED3D_LOCATION_BUFFER) { @@ -1444,7 +1444,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c wined3d_texture_bind_and_dirtify(texture, context, location == WINED3D_LOCATION_TEXTURE_SRGB); wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch); texture1d_upload_data(texture, sub_resource_idx, context, NULL, &data, row_pitch, slice_pitch); -@@ -1941,7 +2014,11 @@ static BOOL texture1d_load_location(struct wined3d_texture *texture, unsigned in +@@ -1892,7 +1965,11 @@ 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)) { @@ -1456,7 +1456,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB) wined3d_texture_bind_and_dirtify(texture, context, FALSE); -@@ -2235,8 +2312,13 @@ static void wined3d_texture_unload(struct wined3d_resource *resource) +@@ -2186,8 +2263,13 @@ static void wined3d_texture_unload(struct wined3d_resource *resource) wined3d_texture_invalidate_location(texture, i, ~WINED3D_LOCATION_DISCARDED); } @@ -1470,7 +1470,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (resource->type == WINED3D_RTYPE_TEXTURE_2D) { -@@ -2840,6 +2922,9 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3 +@@ -2782,6 +2864,9 @@ static HRESULT texture_init(struct wined3d_texture *texture, const struct wined3 if ((desc->usage & WINED3DUSAGE_OWNDC) || (device->wined3d->flags & WINED3D_NO3D)) { wined3d_cs_init_object(device->cs, texture2d_create_dc, surface); @@ -1480,7 +1480,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (!surface->dc) { wined3d_texture_cleanup_sync(texture); -@@ -3020,7 +3105,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in +@@ -2962,7 +3047,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in } else if (sub_resource->locations & WINED3D_LOCATION_BUFFER) { @@ -1492,7 +1492,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c wined3d_texture_bind_and_dirtify(texture, context, location == WINED3D_LOCATION_TEXTURE_SRGB); wined3d_texture_get_pitch(texture, sub_resource_idx, &row_pitch, &slice_pitch); -@@ -3066,7 +3155,11 @@ static BOOL texture3d_load_location(struct wined3d_texture *texture, unsigned in +@@ -3008,7 +3097,11 @@ 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)) { @@ -1504,7 +1504,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB) wined3d_texture_bind_and_dirtify(texture, context, FALSE); -@@ -3284,8 +3377,18 @@ HRESULT CDECL wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned +@@ -3226,8 +3319,18 @@ 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) { @@ -1523,7 +1523,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c } if ((src_format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL)) -@@ -3627,7 +3730,14 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i +@@ -3569,7 +3672,14 @@ HRESULT CDECL wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned i return WINED3DERR_INVALIDCALL; if (!surface->dc) @@ -1538,7 +1538,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c if (!surface->dc) return WINED3DERR_INVALIDCALL; -@@ -3671,7 +3781,14 @@ HRESULT CDECL wined3d_texture_release_dc(struct wined3d_texture *texture, unsign +@@ -3613,7 +3723,14 @@ HRESULT CDECL wined3d_texture_release_dc(struct wined3d_texture *texture, unsign } if (!(texture->resource.usage & WINED3DUSAGE_OWNDC) && !(device->wined3d->flags & WINED3D_NO3D)) @@ -1616,7 +1616,7 @@ diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -2639,6 +2639,16 @@ struct wined3d_state +@@ -2645,6 +2645,16 @@ struct wined3d_state struct wined3d_rasterizer_state *rasterizer_state; }; @@ -1633,7 +1633,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h #define WINED3D_UNMAPPED_STAGE ~0u /* Multithreaded flag. Removed from the public header to signal that -@@ -2750,6 +2760,12 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL +@@ -2756,6 +2766,12 @@ 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; @@ -1646,7 +1646,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state) { -@@ -2936,7 +2952,11 @@ struct wined3d_texture +@@ -2942,7 +2958,11 @@ struct wined3d_texture unsigned int map_count; DWORD locations; @@ -1658,7 +1658,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h } sub_resources[1]; }; -@@ -3247,8 +3267,15 @@ struct wined3d_cs_queue +@@ -3249,8 +3269,15 @@ struct wined3d_cs_queue struct wined3d_cs_ops { @@ -1674,7 +1674,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void (*push_constants)(struct wined3d_cs *cs, enum wined3d_push_constants p, unsigned int start_idx, unsigned int count, const void *constants); }; -@@ -3263,13 +3290,23 @@ struct wined3d_cs +@@ -3265,13 +3292,23 @@ struct wined3d_cs HANDLE thread; DWORD thread_id; @@ -1698,7 +1698,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_cs *wined3d_cs_create(struct wined3d_device *device) DECLSPEC_HIDDEN; -@@ -3291,6 +3328,9 @@ void wined3d_cs_emit_dispatch(struct wined3d_cs *cs, +@@ -3293,6 +3330,9 @@ void wined3d_cs_emit_dispatch(struct wined3d_cs *cs, void wined3d_cs_emit_draw(struct wined3d_cs *cs, GLenum primitive_type, int base_vertex_idx, unsigned int start_idx, unsigned int index_count, unsigned int start_instance, unsigned int instance_count, BOOL indexed) DECLSPEC_HIDDEN; @@ -1708,7 +1708,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_cs_emit_flush(struct wined3d_cs *cs) DECLSPEC_HIDDEN; void wined3d_cs_emit_preload_resource(struct wined3d_cs *cs, struct wined3d_resource *resource) DECLSPEC_HIDDEN; void wined3d_cs_emit_present(struct wined3d_cs *cs, struct wined3d_swapchain *swapchain, -@@ -3343,6 +3383,9 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined +@@ -3345,6 +3385,9 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN;