From a52c90b145e17a63b5906dabae837ef5d39efb25 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 2 Mar 2016 09:49:36 +0100 Subject: [PATCH] Rebase against 6c637ab9c6a65d5601f98545b05f413f777c444e. --- ...emulation-of-SIDT-instruction-when-u.patch | 12 +- patches/patchinstall.sh | 346 ++++----- ...et-rid-of-the-offscreenBuffer-field-.patch | 246 +++++++ ...troduce-wined3d_texture_check_block.patch} | 0 ...Introduce-wined3d_texture_get_pitch.patch} | 0 ...e-wined3d_format_calculate_pitch-in.patch} | 0 ...ndle-slice-pitch-and-alignment-as-w.patch} | 0 ...ore-custom-pitches-in-the-texture-i.patch} | 0 ...ore-the-user_memory-pointer-in-the-.patch} | 0 ...8-wined3d-Merge-get_pitch-functions.patch} | 0 ...-a-context-to-surface_load_location.patch} | 0 ...urface_load_location-return-nothing.patch} | 0 ...re-volume-locations-in-the-resource.patch} | 0 ...ove-validate_location-to-resource.c.patch} | 0 ...surface-locations-into-the-resource.patch} | 0 ...3d-Remove-surface_validate_location.patch} | 0 ...e-invalidate_location-to-resource.c.patch} | 0 ...-Invalidate-containers-via-callback.patch} | 0 ...-Remove-surface_invalidate_location.patch} | 0 ...ap_data-and-user_memory-into-the-re.patch} | 0 ...ove-load_location-into-the-resource.patch} | 0 ...urface_load_location-with-resource_.patch} | 0 ...-helper-functions-for-mapping-volum.patch} | 0 ...me-PBO-infrastructure-into-the-reso.patch} | 0 ... => 0023-wined3d-Remove-surface-pbo.patch} | 0 ...rce-buffer-mapping-facilities-in-su.patch} | 0 ...e-buffer-creation-into-the-resource.patch} | 0 ...NED3D_LOCATION_DISCARDED-in-surface.patch} | 0 ...CATION_DISCARDED-in-surface_load_dr.patch} | 0 ...NED3D_LOCATION_DISCARDED-for-sysmem.patch} | 0 ...Discard-implicit-surfaces-on-unload.patch} | 0 ...-to-flip-sysmem-copies-in-swapchain.patch} | 0 ...-the-backbuffer-in-discard-presents.patch} | 0 ...-a-function-to-retrieve-resource-me.patch} | 0 ...ace_ops-unmap-specific-for-front-bu.patch} | 0 ...ove-check_block_align-to-resource.c.patch} | 0 ...urface-alloc-functions-with-resourc.patch} | 0 ...elete-the-buffer-in-surface_cleanup.patch} | 0 ...resource-facilities-to-destroy-PBOs.patch} | 0 ...le-location-copying-to-the-resource.patch} | 0 ...ve-most-of-volume_map-to-resource.c.patch} | 0 ...ll-the-public-map-function-in-surfac.patch | 101 --- ...3d-Use-resource_map-for-surface_map.patch} | 0 ...ll-the-public-map-function-in-surfac.patch | 335 ++------- ...ll-the-public-map-function-in-surfac.patch | 282 ++++++++ ...-the-framebuffer-into-wined3d_state.patch} | 0 ...f-state-access-in-shader_generate_g.patch} | 0 ...d-buffers-if-streamsrc-is-not-dirty.patch} | 0 ...ntroduce-a-multithreaded-command-st.patch} | 0 ...resource-updates-to-finish-when-usi.patch} | 0 ...re-pointers-in-struct-wined3d_cs_pr.patch} | 0 ...-rectangle-pointers-into-wined3d_cs.patch} | 0 ...-color-in-clear-ops-instead-of-a-po.patch} | 0 ...3d-Pass-the-state-to-draw_primitive.patch} | 0 ...or-the-cs-before-destroying-objects.patch} | 0 ...3-wined3d-Give-the-cs-its-own-state.patch} | 0 ...t-constant-updates-through-the-comm.patch} | 0 ...-glFinish-before-modifying-resource.patch} | 0 ...e-cs-before-changing-the-texture-lo.patch} | 0 ...3d-Don-t-call-glFinish-after-clears.patch} | 0 ...d3d-Don-t-call-glFinish-after-draws.patch} | 0 ...vice-offscreenBuffer-in-the-context.patch} | 0 ...ess-the-stateblock-in-find_draw_buf.patch} | 0 ...-depth-stencil-to-swapchain-present.patch} | 0 ...re-viewport-pointers-in-the-command.patch} | 0 ...k-of-the-onscreen-depth-stencil-in-.patch} | 0 ...-vertex-index-updates-through-the-c.patch} | 0 ...itive-type-updates-through-the-comm.patch} | 0 ...-constant-updates-through-the-comma.patch} | 0 ...constant-updates-through-the-comman.patch} | 0 ...t-updates-through-the-command-strea.patch} | 0 ...he-command-stream-from-running-ahea.patch} | 0 ...the-cs-to-finish-before-destroying-.patch} | 0 ...1-wined3d-Run-the-cs-asynchronously.patch} | 0 ...nd-blits-through-the-command-stream.patch} | 0 ...d3d-Get-rid-of-WINED3D_BUFFER_FLUSH.patch} | 0 ...ce-strict-draw-ordering-for-multith.patch} | 0 ...er-target-view-clears-through-the-c.patch} | 0 ...76-wined3d-Wait-for-the-CS-in-GetDC.patch} | 0 ...urce-maps-through-the-command-strea.patch} | 0 ...d-of-the-end_scene-flush-and-finish.patch} | 0 ...-the-linked-lists-with-a-ringbuffer.patch} | 0 ...ed3d-Don-t-preload-buffers-on-unmap.patch} | 0 ...Don-t-call-glFinish-before-swapping.patch} | 0 ...d-wined3d_-_query_issue-never-fails.patch} | 0 ...query-support-to-the-command-stream.patch} | 0 ...-CS-state-to-find-out-if-a-query-is.patch} | 0 ...oll-queries-automatically-in-the-CS.patch} | 0 ...-a-separate-queue-for-priority-comm.patch} | 0 ...ed3d-Destroy-queries-through-the-CS.patch} | 0 ...-main-and-worker-thread-query-state.patch} | 0 ...t-poll-queries-that-failed-to-start.patch} | 0 ...restated-queries-from-the-poll-list.patch} | 0 ...et-the-query-state-if-it-doesn-t-ha.patch} | 0 ...-Put-this-into-the-query-poll-patch.patch} | 0 ...end-texture-preloads-through-the-CS.patch} | 0 ...update_texture-calls-through-the-CS.patch} | 0 ...of-the-surface_upload_data-glFinish.patch} | 0 ...k-the-src-volume-in-device_update_v.patch} | 0 ...it_managed_resources-through-the-CS.patch} | 0 ...-wined3d-Introduce-resource-fencing.patch} | 0 ...ate_texture-and-update_surface-call.patch} | 0 ...-wined3d-Dirtify-resources-on-unmap.patch} | 0 ...ined3d-Fence-texture-reads-in-draws.patch} | 0 ...e-render-targets-and-depth-stencils.patch} | 0 ... 0103-wined3d-Fence-blit-operations.patch} | 0 ...wined3d-Fence-color_fill-operations.patch} | 0 ...h => 0105-wined3d-Fence-clear-calls.patch} | 0 ...=> 0106-wined3d-Fence-present-calls.patch} | 0 ...urce-maps-and-unmaps-a-priority-com.patch} | 0 ...hanged-textures-through-the-command.patch} | 0 ...-wined3d-Wrap-GL-BOs-in-a-structure.patch} | 0 ...arate-resource-map-and-draw-buffers.patch} | 0 ...-DISCARD-resource-maps-with-buffers.patch} | 0 ...-DISCARD-resource-maps-with-heap-me.patch} | 0 ...-some-objects-in-state_init_default.patch} | 0 ...uest-the-frontbuffer-to-create-dumm.patch} | 0 ...e-buffered-buffers-for-multithreade.patch} | 0 ...synchronize-NOOVERWRITE-buffer-maps.patch} | 0 ...buffer-map-write-and-draw-read-memo.patch} | 0 ...ed3d-Accelerate-DISCARD-buffer-maps.patch} | 0 ...d3d-Accelerate-READONLY-buffer-maps.patch} | 0 ...e-buffer-dirty-areas-through-the-CS.patch} | 0 ...buffer-resource.map_count-in-the-CS.patch} | 0 ...Send-buffer-preloads-through-the-CS.patch} | 0 ...ferSubData-instead-of-glMapBufferRa.patch} | 0 ...GL-buffer-discard-control-from-igno.patch} | 0 ...-Create-buffers-before-mapping-them.patch} | 0 ...ined3d-Destroy-views-through-the-CS.patch} | 0 ...127-wined3d-Remove-another-glFinish.patch} | 0 ...-vertex-declarations-through-the-CS.patch} | 0 ...ed3d-Destroy-shaders-through-the-CS.patch} | 0 ...ate-VBOs-through-the-command-stream.patch} | 0 ...ean-up-resource-data-through-the-CS.patch} | 0 ...buffer-resource-data-through-the-CS.patch} | 0 ...volume-resource-data-through-the-CS.patch} | 0 ...3d-Clean-up-surfaces-through-the-cs.patch} | 0 ...up-texture-resources-through-the-cs.patch} | 0 ...sources-through-the-CS-in-uninit_3d.patch} | 0 ...sources-through-the-CS-in-device_re.patch} | 0 ...-glFinish-after-a-depth-buffer-blit.patch} | 0 ...ed3d-Remove-software-cursor-support.patch} | 0 ...reate-dummy-textures-through-the-CS.patch} | 0 ...-the-initial-context-through-the-CS.patch} | 0 ...ctx-and-dummy-textures-through-the-.patch} | 0 ...NED3D_MAP_NO_DIRTY_UPDATE-in-resour.patch} | 0 ...GL-contexts-through-the-CS-in-reset.patch} | 0 ...-contexts-through-the-CS-in-uninit_.patch} | 0 ...rface_unload-through-the-CS-in-wine.patch} | 0 ...ent-to-block-the-worker-thread-when.patch} | 0 ...48-wined3d-Fence-preload-operations.patch} | 0 ...K_NO_DIRTY_UPDATE-on-managed-textur.patch} | 0 ...K_NO_DIRTY_UPDATE-on-managed-textur.patch} | 0 ...Completely-reset-the-state-on-reset.patch} | 0 ...c-and-releasedc-through-the-command.patch} | 0 ...eap_memory-NULL-when-allocating-a-P.patch} | 0 ...Wait-only-for-the-buffer-to-be-idle.patch} | 0 ...d-a-comment-about-worker-thread-lag.patch} | 0 ...Remove-the-texture-destroy-glFinish.patch} | 0 ...-destruction-into-the-worker-thread.patch} | 0 ...ref-decref-textures-in-color-depth-.patch} | 0 ...159-Winex11-complain-about-glfinish.patch} | 0 ...-the-new-window-is-set-up-before-se.patch} | 0 ...move-the-device_reset-CS-sync-fixme.patch} | 0 ...PLE_flush_buffer_range-syncing-back.patch} | 0 ...the-resource-to-be-idle-when-destro.patch} | 0 ...n-t-sync-on-redundant-discard-calls.patch} | 0 ...5-wined3d-Don-t-discard-new-buffers.patch} | 0 ...-to-sync-VBOs-manually-on-OSX-with-.patch} | 0 ...167-wined3d-Render-target-lock-hack.patch} | 0 ...ling-wined3d_surface_blt-from-surfa.patch} | 0 ...nly-discard-buffers-that-are-in-use.patch} | 0 ...samplers-through-the-command-stream.patch} | 0 ...k-to-reject-unsupported-color-fills.patch} | 0 ...-buffer-map-array-before-mapping-th.patch} | 0 ...te_sub_resource-calls-through-the-c.patch} | 0 .../wined3d-CSMT_Main/9999-IfDefined.patch | 664 +++++++++--------- .../0001-wpcap-Load-libpcap-dynamically.patch | 17 +- 178 files changed, 1136 insertions(+), 867 deletions(-) create mode 100644 patches/wined3d-CSMT_Main/0001-Revert-wined3d-Get-rid-of-the-offscreenBuffer-field-.patch rename patches/wined3d-CSMT_Main/{0001-Revert-wined3d-Introduce-wined3d_texture_check_block.patch => 0002-Revert-wined3d-Introduce-wined3d_texture_check_block.patch} (100%) rename patches/wined3d-CSMT_Main/{0002-Revert-wined3d-Introduce-wined3d_texture_get_pitch.patch => 0003-Revert-wined3d-Introduce-wined3d_texture_get_pitch.patch} (100%) rename patches/wined3d-CSMT_Main/{0003-Revert-wined3d-Use-wined3d_format_calculate_pitch-in.patch => 0004-Revert-wined3d-Use-wined3d_format_calculate_pitch-in.patch} (100%) rename patches/wined3d-CSMT_Main/{0004-Revert-wined3d-Handle-slice-pitch-and-alignment-as-w.patch => 0005-Revert-wined3d-Handle-slice-pitch-and-alignment-as-w.patch} (100%) rename patches/wined3d-CSMT_Main/{0005-Revert-wined3d-Store-custom-pitches-in-the-texture-i.patch => 0006-Revert-wined3d-Store-custom-pitches-in-the-texture-i.patch} (100%) rename patches/wined3d-CSMT_Main/{0006-Revert-wined3d-Store-the-user_memory-pointer-in-the-.patch => 0007-Revert-wined3d-Store-the-user_memory-pointer-in-the-.patch} (100%) rename patches/wined3d-CSMT_Main/{0007-wined3d-Merge-get_pitch-functions.patch => 0008-wined3d-Merge-get_pitch-functions.patch} (100%) rename patches/wined3d-CSMT_Main/{0008-wined3d-Pass-a-context-to-surface_load_location.patch => 0009-wined3d-Pass-a-context-to-surface_load_location.patch} (100%) rename patches/wined3d-CSMT_Main/{0009-wined3d-Make-surface_load_location-return-nothing.patch => 0010-wined3d-Make-surface_load_location-return-nothing.patch} (100%) rename patches/wined3d-CSMT_Main/{0010-wined3d-Store-volume-locations-in-the-resource.patch => 0011-wined3d-Store-volume-locations-in-the-resource.patch} (100%) rename patches/wined3d-CSMT_Main/{0011-wined3d-Move-validate_location-to-resource.c.patch => 0012-wined3d-Move-validate_location-to-resource.c.patch} (100%) rename patches/wined3d-CSMT_Main/{0012-wined3d-Move-surface-locations-into-the-resource.patch => 0013-wined3d-Move-surface-locations-into-the-resource.patch} (100%) rename patches/wined3d-CSMT_Main/{0013-wined3d-Remove-surface_validate_location.patch => 0014-wined3d-Remove-surface_validate_location.patch} (100%) rename patches/wined3d-CSMT_Main/{0014-wined3d-Move-invalidate_location-to-resource.c.patch => 0015-wined3d-Move-invalidate_location-to-resource.c.patch} (100%) rename patches/wined3d-CSMT_Main/{0015-wined3d-Invalidate-containers-via-callback.patch => 0016-wined3d-Invalidate-containers-via-callback.patch} (100%) rename patches/wined3d-CSMT_Main/{0016-wined3d-Remove-surface_invalidate_location.patch => 0017-wined3d-Remove-surface_invalidate_location.patch} (100%) rename patches/wined3d-CSMT_Main/{0017-wined3d-Move-bitmap_data-and-user_memory-into-the-re.patch => 0018-wined3d-Move-bitmap_data-and-user_memory-into-the-re.patch} (100%) rename patches/wined3d-CSMT_Main/{0018-wined3d-Move-load_location-into-the-resource.patch => 0019-wined3d-Move-load_location-into-the-resource.patch} (100%) rename patches/wined3d-CSMT_Main/{0019-wined3d-Replace-surface_load_location-with-resource_.patch => 0020-wined3d-Replace-surface_load_location-with-resource_.patch} (100%) rename patches/wined3d-CSMT_Main/{0020-wined3d-Introduce-helper-functions-for-mapping-volum.patch => 0021-wined3d-Introduce-helper-functions-for-mapping-volum.patch} (100%) rename patches/wined3d-CSMT_Main/{0021-wined3d-Move-volume-PBO-infrastructure-into-the-reso.patch => 0022-wined3d-Move-volume-PBO-infrastructure-into-the-reso.patch} (100%) rename patches/wined3d-CSMT_Main/{0022-wined3d-Remove-surface-pbo.patch => 0023-wined3d-Remove-surface-pbo.patch} (100%) rename patches/wined3d-CSMT_Main/{0023-wined3d-Use-resource-buffer-mapping-facilities-in-su.patch => 0024-wined3d-Use-resource-buffer-mapping-facilities-in-su.patch} (100%) rename patches/wined3d-CSMT_Main/{0024-wined3d-Move-buffer-creation-into-the-resource.patch => 0025-wined3d-Move-buffer-creation-into-the-resource.patch} (100%) rename patches/wined3d-CSMT_Main/{0025-wined3d-Handle-WINED3D_LOCATION_DISCARDED-in-surface.patch => 0026-wined3d-Handle-WINED3D_LOCATION_DISCARDED-in-surface.patch} (100%) rename patches/wined3d-CSMT_Main/{0026-wined3d-Handle-LOCATION_DISCARDED-in-surface_load_dr.patch => 0027-wined3d-Handle-LOCATION_DISCARDED-in-surface_load_dr.patch} (100%) rename patches/wined3d-CSMT_Main/{0027-wined3d-Handle-WINED3D_LOCATION_DISCARDED-for-sysmem.patch => 0028-wined3d-Handle-WINED3D_LOCATION_DISCARDED-for-sysmem.patch} (100%) rename patches/wined3d-CSMT_Main/{0028-wined3d-Discard-implicit-surfaces-on-unload.patch => 0029-wined3d-Discard-implicit-surfaces-on-unload.patch} (100%) rename patches/wined3d-CSMT_Main/{0029-wined3d-Don-t-try-to-flip-sysmem-copies-in-swapchain.patch => 0030-wined3d-Don-t-try-to-flip-sysmem-copies-in-swapchain.patch} (100%) rename patches/wined3d-CSMT_Main/{0030-wined3d-Discard-the-backbuffer-in-discard-presents.patch => 0031-wined3d-Discard-the-backbuffer-in-discard-presents.patch} (100%) rename patches/wined3d-CSMT_Main/{0031-wined3d-Introduce-a-function-to-retrieve-resource-me.patch => 0032-wined3d-Introduce-a-function-to-retrieve-resource-me.patch} (100%) rename patches/wined3d-CSMT_Main/{0032-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch => 0033-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch} (100%) rename patches/wined3d-CSMT_Main/{0033-wined3d-Move-check_block_align-to-resource.c.patch => 0034-wined3d-Move-check_block_align-to-resource.c.patch} (100%) rename patches/wined3d-CSMT_Main/{0034-wined3d-Replace-surface-alloc-functions-with-resourc.patch => 0035-wined3d-Replace-surface-alloc-functions-with-resourc.patch} (100%) rename patches/wined3d-CSMT_Main/{0035-wined3d-Don-t-delete-the-buffer-in-surface_cleanup.patch => 0036-wined3d-Don-t-delete-the-buffer-in-surface_cleanup.patch} (100%) rename patches/wined3d-CSMT_Main/{0036-wined3d-Use-resource-facilities-to-destroy-PBOs.patch => 0037-wined3d-Use-resource-facilities-to-destroy-PBOs.patch} (100%) rename patches/wined3d-CSMT_Main/{0037-wined3d-Move-simple-location-copying-to-the-resource.patch => 0038-wined3d-Move-simple-location-copying-to-the-resource.patch} (100%) rename patches/wined3d-CSMT_Main/{0038-wined3d-Move-most-of-volume_map-to-resource.c.patch => 0039-wined3d-Move-most-of-volume_map-to-resource.c.patch} (100%) delete mode 100644 patches/wined3d-CSMT_Main/0040-wined3d-Don-t-call-the-public-map-function-in-surfac.patch rename patches/wined3d-CSMT_Main/{0039-wined3d-Use-resource_map-for-surface_map.patch => 0040-wined3d-Use-resource_map-for-surface_map.patch} (100%) create mode 100644 patches/wined3d-CSMT_Main/0042-wined3d-Don-t-call-the-public-map-function-in-surfac.patch rename patches/wined3d-CSMT_Main/{0042-wined3d-Move-the-framebuffer-into-wined3d_state.patch => 0043-wined3d-Move-the-framebuffer-into-wined3d_state.patch} (100%) rename patches/wined3d-CSMT_Main/{0043-wined3d-Get-rid-of-state-access-in-shader_generate_g.patch => 0044-wined3d-Get-rid-of-state-access-in-shader_generate_g.patch} (100%) rename patches/wined3d-CSMT_Main/{0044-wined3d-Preload-buffers-if-streamsrc-is-not-dirty.patch => 0045-wined3d-Preload-buffers-if-streamsrc-is-not-dirty.patch} (100%) rename patches/wined3d-CSMT_Main/{0045-wined3d-Hackily-introduce-a-multithreaded-command-st.patch => 0046-wined3d-Hackily-introduce-a-multithreaded-command-st.patch} (100%) rename patches/wined3d-CSMT_Main/{0046-wined3d-Wait-for-resource-updates-to-finish-when-usi.patch => 0047-wined3d-Wait-for-resource-updates-to-finish-when-usi.patch} (100%) rename patches/wined3d-CSMT_Main/{0047-wined3d-Don-t-store-pointers-in-struct-wined3d_cs_pr.patch => 0048-wined3d-Don-t-store-pointers-in-struct-wined3d_cs_pr.patch} (100%) rename patches/wined3d-CSMT_Main/{0048-wined3d-Don-t-put-rectangle-pointers-into-wined3d_cs.patch => 0049-wined3d-Don-t-put-rectangle-pointers-into-wined3d_cs.patch} (100%) rename patches/wined3d-CSMT_Main/{0049-wined3d-Store-the-color-in-clear-ops-instead-of-a-po.patch => 0050-wined3d-Store-the-color-in-clear-ops-instead-of-a-po.patch} (100%) rename patches/wined3d-CSMT_Main/{0050-wined3d-Pass-the-state-to-draw_primitive.patch => 0051-wined3d-Pass-the-state-to-draw_primitive.patch} (100%) rename patches/wined3d-CSMT_Main/{0051-wined3d-Wait-for-the-cs-before-destroying-objects.patch => 0052-wined3d-Wait-for-the-cs-before-destroying-objects.patch} (100%) rename patches/wined3d-CSMT_Main/{0052-wined3d-Give-the-cs-its-own-state.patch => 0053-wined3d-Give-the-cs-its-own-state.patch} (100%) rename patches/wined3d-CSMT_Main/{0053-wined3d-Send-float-constant-updates-through-the-comm.patch => 0054-wined3d-Send-float-constant-updates-through-the-comm.patch} (100%) rename patches/wined3d-CSMT_Main/{0054-wined3d-Request-a-glFinish-before-modifying-resource.patch => 0055-wined3d-Request-a-glFinish-before-modifying-resource.patch} (100%) rename patches/wined3d-CSMT_Main/{0055-wined3d-Finish-the-cs-before-changing-the-texture-lo.patch => 0056-wined3d-Finish-the-cs-before-changing-the-texture-lo.patch} (100%) rename patches/wined3d-CSMT_Main/{0056-wined3d-Don-t-call-glFinish-after-clears.patch => 0057-wined3d-Don-t-call-glFinish-after-clears.patch} (100%) rename patches/wined3d-CSMT_Main/{0057-wined3d-Don-t-call-glFinish-after-draws.patch => 0058-wined3d-Don-t-call-glFinish-after-draws.patch} (100%) rename patches/wined3d-CSMT_Main/{0058-wined3d-Shadow-device-offscreenBuffer-in-the-context.patch => 0059-wined3d-Shadow-device-offscreenBuffer-in-the-context.patch} (100%) rename patches/wined3d-CSMT_Main/{0059-wined3d-Don-t-access-the-stateblock-in-find_draw_buf.patch => 0060-wined3d-Don-t-access-the-stateblock-in-find_draw_buf.patch} (100%) rename patches/wined3d-CSMT_Main/{0060-wined3d-Pass-the-depth-stencil-to-swapchain-present.patch => 0061-wined3d-Pass-the-depth-stencil-to-swapchain-present.patch} (100%) rename patches/wined3d-CSMT_Main/{0061-wined3d-Don-t-store-viewport-pointers-in-the-command.patch => 0062-wined3d-Don-t-store-viewport-pointers-in-the-command.patch} (100%) rename patches/wined3d-CSMT_Main/{0062-wined3d-Keep-track-of-the-onscreen-depth-stencil-in-.patch => 0063-wined3d-Keep-track-of-the-onscreen-depth-stencil-in-.patch} (100%) rename patches/wined3d-CSMT_Main/{0063-wined3d-Send-base-vertex-index-updates-through-the-c.patch => 0064-wined3d-Send-base-vertex-index-updates-through-the-c.patch} (100%) rename patches/wined3d-CSMT_Main/{0064-wined3d-Send-primitive-type-updates-through-the-comm.patch => 0065-wined3d-Send-primitive-type-updates-through-the-comm.patch} (100%) rename patches/wined3d-CSMT_Main/{0065-wined3d-Send-bool-constant-updates-through-the-comma.patch => 0066-wined3d-Send-bool-constant-updates-through-the-comma.patch} (100%) rename patches/wined3d-CSMT_Main/{0066-wined3d-Send-int-constant-updates-through-the-comman.patch => 0067-wined3d-Send-int-constant-updates-through-the-comman.patch} (100%) rename patches/wined3d-CSMT_Main/{0067-wined3d-Send-light-updates-through-the-command-strea.patch => 0068-wined3d-Send-light-updates-through-the-command-strea.patch} (100%) rename patches/wined3d-CSMT_Main/{0068-wined3d-Prevent-the-command-stream-from-running-ahea.patch => 0069-wined3d-Prevent-the-command-stream-from-running-ahea.patch} (100%) rename patches/wined3d-CSMT_Main/{0069-wined3d-Wait-for-the-cs-to-finish-before-destroying-.patch => 0070-wined3d-Wait-for-the-cs-to-finish-before-destroying-.patch} (100%) rename patches/wined3d-CSMT_Main/{0070-wined3d-Run-the-cs-asynchronously.patch => 0071-wined3d-Run-the-cs-asynchronously.patch} (100%) rename patches/wined3d-CSMT_Main/{0071-wined3d-Send-blits-through-the-command-stream.patch => 0072-wined3d-Send-blits-through-the-command-stream.patch} (100%) rename patches/wined3d-CSMT_Main/{0072-wined3d-Get-rid-of-WINED3D_BUFFER_FLUSH.patch => 0073-wined3d-Get-rid-of-WINED3D_BUFFER_FLUSH.patch} (100%) rename patches/wined3d-CSMT_Main/{0073-wined3d-Don-t-force-strict-draw-ordering-for-multith.patch => 0074-wined3d-Don-t-force-strict-draw-ordering-for-multith.patch} (100%) rename patches/wined3d-CSMT_Main/{0074-wined3d-Send-render-target-view-clears-through-the-c.patch => 0075-wined3d-Send-render-target-view-clears-through-the-c.patch} (100%) rename patches/wined3d-CSMT_Main/{0075-wined3d-Wait-for-the-CS-in-GetDC.patch => 0076-wined3d-Wait-for-the-CS-in-GetDC.patch} (100%) rename patches/wined3d-CSMT_Main/{0076-wined3d-send-resource-maps-through-the-command-strea.patch => 0077-wined3d-send-resource-maps-through-the-command-strea.patch} (100%) rename patches/wined3d-CSMT_Main/{0077-wined3d-Get-rid-of-the-end_scene-flush-and-finish.patch => 0078-wined3d-Get-rid-of-the-end_scene-flush-and-finish.patch} (100%) rename patches/wined3d-CSMT_Main/{0078-wined3d-Replace-the-linked-lists-with-a-ringbuffer.patch => 0079-wined3d-Replace-the-linked-lists-with-a-ringbuffer.patch} (100%) rename patches/wined3d-CSMT_Main/{0079-wined3d-Don-t-preload-buffers-on-unmap.patch => 0080-wined3d-Don-t-preload-buffers-on-unmap.patch} (100%) rename patches/wined3d-CSMT_Main/{0080-wined3d-Don-t-call-glFinish-before-swapping.patch => 0081-wined3d-Don-t-call-glFinish-before-swapping.patch} (100%) rename patches/wined3d-CSMT_Main/{0081-wined3d-wined3d_-_query_issue-never-fails.patch => 0082-wined3d-wined3d_-_query_issue-never-fails.patch} (100%) rename patches/wined3d-CSMT_Main/{0082-wined3d-Add-query-support-to-the-command-stream.patch => 0083-wined3d-Add-query-support-to-the-command-stream.patch} (100%) rename patches/wined3d-CSMT_Main/{0083-wined3d-Check-our-CS-state-to-find-out-if-a-query-is.patch => 0084-wined3d-Check-our-CS-state-to-find-out-if-a-query-is.patch} (100%) rename patches/wined3d-CSMT_Main/{0084-wined3d-Poll-queries-automatically-in-the-CS.patch => 0085-wined3d-Poll-queries-automatically-in-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0085-wined3d-Introduce-a-separate-queue-for-priority-comm.patch => 0086-wined3d-Introduce-a-separate-queue-for-priority-comm.patch} (100%) rename patches/wined3d-CSMT_Main/{0086-wined3d-Destroy-queries-through-the-CS.patch => 0087-wined3d-Destroy-queries-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0087-wined3d-Separate-main-and-worker-thread-query-state.patch => 0088-wined3d-Separate-main-and-worker-thread-query-state.patch} (100%) rename patches/wined3d-CSMT_Main/{0088-wined3d-Don-t-poll-queries-that-failed-to-start.patch => 0089-wined3d-Don-t-poll-queries-that-failed-to-start.patch} (100%) rename patches/wined3d-CSMT_Main/{0089-wined3d-Remove-restated-queries-from-the-poll-list.patch => 0090-wined3d-Remove-restated-queries-from-the-poll-list.patch} (100%) rename patches/wined3d-CSMT_Main/{0090-wined3d-Don-t-reset-the-query-state-if-it-doesn-t-ha.patch => 0091-wined3d-Don-t-reset-the-query-state-if-it-doesn-t-ha.patch} (100%) rename patches/wined3d-CSMT_Main/{0091-wined3d-Put-this-into-the-query-poll-patch.patch => 0092-wined3d-Put-this-into-the-query-poll-patch.patch} (100%) rename patches/wined3d-CSMT_Main/{0092-wined3d-Send-texture-preloads-through-the-CS.patch => 0093-wined3d-Send-texture-preloads-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0093-wined3d-Send-update_texture-calls-through-the-CS.patch => 0094-wined3d-Send-update_texture-calls-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0094-wined3d-Get-rid-of-the-surface_upload_data-glFinish.patch => 0095-wined3d-Get-rid-of-the-surface_upload_data-glFinish.patch} (100%) rename patches/wined3d-CSMT_Main/{0095-wined3d-Don-t-lock-the-src-volume-in-device_update_v.patch => 0096-wined3d-Don-t-lock-the-src-volume-in-device_update_v.patch} (100%) rename patches/wined3d-CSMT_Main/{0096-wined3d-Handle-evit_managed_resources-through-the-CS.patch => 0097-wined3d-Handle-evit_managed_resources-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0097-wined3d-Introduce-resource-fencing.patch => 0098-wined3d-Introduce-resource-fencing.patch} (100%) rename patches/wined3d-CSMT_Main/{0098-wined3d-Fence-update_texture-and-update_surface-call.patch => 0099-wined3d-Fence-update_texture-and-update_surface-call.patch} (100%) rename patches/wined3d-CSMT_Main/{0099-wined3d-Dirtify-resources-on-unmap.patch => 0100-wined3d-Dirtify-resources-on-unmap.patch} (100%) rename patches/wined3d-CSMT_Main/{0100-wined3d-Fence-texture-reads-in-draws.patch => 0101-wined3d-Fence-texture-reads-in-draws.patch} (100%) rename patches/wined3d-CSMT_Main/{0101-wined3d-Fence-render-targets-and-depth-stencils.patch => 0102-wined3d-Fence-render-targets-and-depth-stencils.patch} (100%) rename patches/wined3d-CSMT_Main/{0102-wined3d-Fence-blit-operations.patch => 0103-wined3d-Fence-blit-operations.patch} (100%) rename patches/wined3d-CSMT_Main/{0103-wined3d-Fence-color_fill-operations.patch => 0104-wined3d-Fence-color_fill-operations.patch} (100%) rename patches/wined3d-CSMT_Main/{0104-wined3d-Fence-clear-calls.patch => 0105-wined3d-Fence-clear-calls.patch} (100%) rename patches/wined3d-CSMT_Main/{0105-wined3d-Fence-present-calls.patch => 0106-wined3d-Fence-present-calls.patch} (100%) rename patches/wined3d-CSMT_Main/{0106-wined3d-Make-resource-maps-and-unmaps-a-priority-com.patch => 0107-wined3d-Make-resource-maps-and-unmaps-a-priority-com.patch} (100%) rename patches/wined3d-CSMT_Main/{0107-wined3d-Dirtify-changed-textures-through-the-command.patch => 0108-wined3d-Dirtify-changed-textures-through-the-command.patch} (100%) rename patches/wined3d-CSMT_Main/{0108-wined3d-Wrap-GL-BOs-in-a-structure.patch => 0109-wined3d-Wrap-GL-BOs-in-a-structure.patch} (100%) rename patches/wined3d-CSMT_Main/{0109-wined3d-Separate-resource-map-and-draw-buffers.patch => 0110-wined3d-Separate-resource-map-and-draw-buffers.patch} (100%) rename patches/wined3d-CSMT_Main/{0110-wined3d-Implement-DISCARD-resource-maps-with-buffers.patch => 0111-wined3d-Implement-DISCARD-resource-maps-with-buffers.patch} (100%) rename patches/wined3d-CSMT_Main/{0111-wined3d-Implement-DISCARD-resource-maps-with-heap-me.patch => 0112-wined3d-Implement-DISCARD-resource-maps-with-heap-me.patch} (100%) rename patches/wined3d-CSMT_Main/{0112-wined3d-Unset-some-objects-in-state_init_default.patch => 0113-wined3d-Unset-some-objects-in-state_init_default.patch} (100%) rename patches/wined3d-CSMT_Main/{0113-wined3d-Don-t-request-the-frontbuffer-to-create-dumm.patch => 0114-wined3d-Don-t-request-the-frontbuffer-to-create-dumm.patch} (100%) rename patches/wined3d-CSMT_Main/{0114-wined3d-Use-double-buffered-buffers-for-multithreade.patch => 0115-wined3d-Use-double-buffered-buffers-for-multithreade.patch} (100%) rename patches/wined3d-CSMT_Main/{0115-wined3d-Don-t-synchronize-NOOVERWRITE-buffer-maps.patch => 0116-wined3d-Don-t-synchronize-NOOVERWRITE-buffer-maps.patch} (100%) rename patches/wined3d-CSMT_Main/{0116-wined3d-Separate-buffer-map-write-and-draw-read-memo.patch => 0117-wined3d-Separate-buffer-map-write-and-draw-read-memo.patch} (100%) rename patches/wined3d-CSMT_Main/{0117-wined3d-Accelerate-DISCARD-buffer-maps.patch => 0118-wined3d-Accelerate-DISCARD-buffer-maps.patch} (100%) rename patches/wined3d-CSMT_Main/{0118-wined3d-Accelerate-READONLY-buffer-maps.patch => 0119-wined3d-Accelerate-READONLY-buffer-maps.patch} (100%) rename patches/wined3d-CSMT_Main/{0119-wined3d-Access-the-buffer-dirty-areas-through-the-CS.patch => 0120-wined3d-Access-the-buffer-dirty-areas-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0120-wined3d-Ignore-buffer-resource.map_count-in-the-CS.patch => 0121-wined3d-Ignore-buffer-resource.map_count-in-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0121-wined3d-Send-buffer-preloads-through-the-CS.patch => 0122-wined3d-Send-buffer-preloads-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0122-wined3d-Use-glBufferSubData-instead-of-glMapBufferRa.patch => 0123-wined3d-Use-glBufferSubData-instead-of-glMapBufferRa.patch} (100%) rename patches/wined3d-CSMT_Main/{0123-wined3d-Separate-GL-buffer-discard-control-from-igno.patch => 0124-wined3d-Separate-GL-buffer-discard-control-from-igno.patch} (100%) rename patches/wined3d-CSMT_Main/{0124-wined3d-Create-buffers-before-mapping-them.patch => 0125-wined3d-Create-buffers-before-mapping-them.patch} (100%) rename patches/wined3d-CSMT_Main/{0125-wined3d-Destroy-views-through-the-CS.patch => 0126-wined3d-Destroy-views-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0126-wined3d-Remove-another-glFinish.patch => 0127-wined3d-Remove-another-glFinish.patch} (100%) rename patches/wined3d-CSMT_Main/{0127-wined3d-Destroy-vertex-declarations-through-the-CS.patch => 0128-wined3d-Destroy-vertex-declarations-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0128-wined3d-Destroy-shaders-through-the-CS.patch => 0129-wined3d-Destroy-shaders-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0129-wined3d-Create-VBOs-through-the-command-stream.patch => 0130-wined3d-Create-VBOs-through-the-command-stream.patch} (100%) rename patches/wined3d-CSMT_Main/{0130-wined3d-Clean-up-resource-data-through-the-CS.patch => 0131-wined3d-Clean-up-resource-data-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0131-wined3d-Clean-up-buffer-resource-data-through-the-CS.patch => 0132-wined3d-Clean-up-buffer-resource-data-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0132-wined3d-Clean-up-volume-resource-data-through-the-CS.patch => 0133-wined3d-Clean-up-volume-resource-data-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0133-wined3d-Clean-up-surfaces-through-the-cs.patch => 0134-wined3d-Clean-up-surfaces-through-the-cs.patch} (100%) rename patches/wined3d-CSMT_Main/{0134-wined3d-Clean-up-texture-resources-through-the-cs.patch => 0135-wined3d-Clean-up-texture-resources-through-the-cs.patch} (100%) rename patches/wined3d-CSMT_Main/{0135-wined3d-Unload-resources-through-the-CS-in-uninit_3d.patch => 0136-wined3d-Unload-resources-through-the-CS-in-uninit_3d.patch} (100%) rename patches/wined3d-CSMT_Main/{0136-wined3d-Unload-resources-through-the-CS-in-device_re.patch => 0137-wined3d-Unload-resources-through-the-CS-in-device_re.patch} (100%) rename patches/wined3d-CSMT_Main/{0137-wined3d-Don-t-glFinish-after-a-depth-buffer-blit.patch => 0138-wined3d-Don-t-glFinish-after-a-depth-buffer-blit.patch} (100%) rename patches/wined3d-CSMT_Main/{0138-wined3d-Remove-software-cursor-support.patch => 0139-wined3d-Remove-software-cursor-support.patch} (100%) rename patches/wined3d-CSMT_Main/{0139-wined3d-Create-dummy-textures-through-the-CS.patch => 0140-wined3d-Create-dummy-textures-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0140-wined3d-Create-the-initial-context-through-the-CS.patch => 0141-wined3d-Create-the-initial-context-through-the-CS.patch} (100%) rename patches/wined3d-CSMT_Main/{0141-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch => 0142-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch} (100%) rename patches/wined3d-CSMT_Main/{0142-wined3d-Ignore-WINED3D_MAP_NO_DIRTY_UPDATE-in-resour.patch => 0143-wined3d-Ignore-WINED3D_MAP_NO_DIRTY_UPDATE-in-resour.patch} (100%) rename patches/wined3d-CSMT_Main/{0143-wined3d-Delete-GL-contexts-through-the-CS-in-reset.patch => 0144-wined3d-Delete-GL-contexts-through-the-CS-in-reset.patch} (100%) rename patches/wined3d-CSMT_Main/{0144-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch => 0145-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch} (100%) rename patches/wined3d-CSMT_Main/{0145-wined3d-Invoke-surface_unload-through-the-CS-in-wine.patch => 0146-wined3d-Invoke-surface_unload-through-the-CS-in-wine.patch} (100%) rename patches/wined3d-CSMT_Main/{0146-wined3d-Use-an-event-to-block-the-worker-thread-when.patch => 0147-wined3d-Use-an-event-to-block-the-worker-thread-when.patch} (100%) rename patches/wined3d-CSMT_Main/{0147-wined3d-Fence-preload-operations.patch => 0148-wined3d-Fence-preload-operations.patch} (100%) rename patches/wined3d-CSMT_Main/{0148-d3d8-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch => 0149-d3d8-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch} (100%) rename patches/wined3d-CSMT_Main/{0149-d3d9-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch => 0150-d3d9-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch} (100%) rename patches/wined3d-CSMT_Main/{0150-wined3d-Completely-reset-the-state-on-reset.patch => 0151-wined3d-Completely-reset-the-state-on-reset.patch} (100%) rename patches/wined3d-CSMT_Main/{0151-wined3d-Send-getdc-and-releasedc-through-the-command.patch => 0152-wined3d-Send-getdc-and-releasedc-through-the-command.patch} (100%) rename patches/wined3d-CSMT_Main/{0152-wined3d-Set-map_heap_memory-NULL-when-allocating-a-P.patch => 0153-wined3d-Set-map_heap_memory-NULL-when-allocating-a-P.patch} (100%) rename patches/wined3d-CSMT_Main/{0153-wined3d-Wait-only-for-the-buffer-to-be-idle.patch => 0154-wined3d-Wait-only-for-the-buffer-to-be-idle.patch} (100%) rename patches/wined3d-CSMT_Main/{0154-wined3d-Add-a-comment-about-worker-thread-lag.patch => 0155-wined3d-Add-a-comment-about-worker-thread-lag.patch} (100%) rename patches/wined3d-CSMT_Main/{0155-wined3d-Remove-the-texture-destroy-glFinish.patch => 0156-wined3d-Remove-the-texture-destroy-glFinish.patch} (100%) rename patches/wined3d-CSMT_Main/{0156-wined3d-Move-FBO-destruction-into-the-worker-thread.patch => 0157-wined3d-Move-FBO-destruction-into-the-worker-thread.patch} (100%) rename patches/wined3d-CSMT_Main/{0157-wined3d-Don-t-incref-decref-textures-in-color-depth-.patch => 0158-wined3d-Don-t-incref-decref-textures-in-color-depth-.patch} (100%) rename patches/wined3d-CSMT_Main/{0158-Winex11-complain-about-glfinish.patch => 0159-Winex11-complain-about-glfinish.patch} (100%) rename patches/wined3d-CSMT_Main/{0159-wined3d-Make-sure-the-new-window-is-set-up-before-se.patch => 0160-wined3d-Make-sure-the-new-window-is-set-up-before-se.patch} (100%) rename patches/wined3d-CSMT_Main/{0160-wined3d-Remove-the-device_reset-CS-sync-fixme.patch => 0161-wined3d-Remove-the-device_reset-CS-sync-fixme.patch} (100%) rename patches/wined3d-CSMT_Main/{0161-wined3d-Put-GL_APPLE_flush_buffer_range-syncing-back.patch => 0162-wined3d-Put-GL_APPLE_flush_buffer_range-syncing-back.patch} (100%) rename patches/wined3d-CSMT_Main/{0162-wined3d-Wait-for-the-resource-to-be-idle-when-destro.patch => 0163-wined3d-Wait-for-the-resource-to-be-idle-when-destro.patch} (100%) rename patches/wined3d-CSMT_Main/{0163-wined3d-Don-t-sync-on-redundant-discard-calls.patch => 0164-wined3d-Don-t-sync-on-redundant-discard-calls.patch} (100%) rename patches/wined3d-CSMT_Main/{0164-wined3d-Don-t-discard-new-buffers.patch => 0165-wined3d-Don-t-discard-new-buffers.patch} (100%) rename patches/wined3d-CSMT_Main/{0165-wined3d-Don-t-try-to-sync-VBOs-manually-on-OSX-with-.patch => 0166-wined3d-Don-t-try-to-sync-VBOs-manually-on-OSX-with-.patch} (100%) rename patches/wined3d-CSMT_Main/{0166-wined3d-Render-target-lock-hack.patch => 0167-wined3d-Render-target-lock-hack.patch} (100%) rename patches/wined3d-CSMT_Main/{0167-wined3d-Avoid-calling-wined3d_surface_blt-from-surfa.patch => 0168-wined3d-Avoid-calling-wined3d_surface_blt-from-surfa.patch} (100%) rename patches/wined3d-CSMT_Main/{0168-wined3d-Only-discard-buffers-that-are-in-use.patch => 0169-wined3d-Only-discard-buffers-that-are-in-use.patch} (100%) rename patches/wined3d-CSMT_Main/{0169-wined3d-Destroy-samplers-through-the-command-stream.patch => 0170-wined3d-Destroy-samplers-through-the-command-stream.patch} (100%) rename patches/wined3d-CSMT_Main/{0170-wined3d-Hack-to-reject-unsupported-color-fills.patch => 0171-wined3d-Hack-to-reject-unsupported-color-fills.patch} (100%) rename patches/wined3d-CSMT_Main/{0171-wined3d-Alloc-the-buffer-map-array-before-mapping-th.patch => 0172-wined3d-Alloc-the-buffer-map-array-before-mapping-th.patch} (100%) rename patches/wined3d-CSMT_Main/{0172-wined3d-Send-update_sub_resource-calls-through-the-c.patch => 0173-wined3d-Send-update_sub_resource-calls-through-the-c.patch} (100%) diff --git a/patches/Exagear/0001-ntdll-Implement-emulation-of-SIDT-instruction-when-u.patch b/patches/Exagear/0001-ntdll-Implement-emulation-of-SIDT-instruction-when-u.patch index ff82f585..0622fabc 100644 --- a/patches/Exagear/0001-ntdll-Implement-emulation-of-SIDT-instruction-when-u.patch +++ b/patches/Exagear/0001-ntdll-Implement-emulation-of-SIDT-instruction-when-u.patch @@ -1,4 +1,4 @@ -From 78ee3e0a09735f835303b7ddd458c8852b4774fc Mon Sep 17 00:00:00 2001 +From 472184e5801de5d1fb92d275d9c0c7e840c9a0bf Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 11 Nov 2014 03:11:33 +0100 Subject: ntdll: Implement emulation of SIDT instruction when using Exagear. @@ -9,7 +9,7 @@ Subject: ntdll: Implement emulation of SIDT instruction when using Exagear. 2 files changed, 231 insertions(+) diff --git a/configure.ac b/configure.ac -index c9445e7..8a5b2d8 100644 +index 1e6bba3..43bf0db 100644 --- a/configure.ac +++ b/configure.ac @@ -32,6 +32,7 @@ AC_ARG_ENABLE(win16, AS_HELP_STRING([--disable-win16],[do not include Win16 supp @@ -20,9 +20,9 @@ index c9445e7..8a5b2d8 100644 AC_ARG_WITH(alsa, AS_HELP_STRING([--without-alsa],[do not use the Alsa sound support]), [if test "x$withval" = "xno"; then ac_cv_header_sys_asoundlib_h=no; ac_cv_header_alsa_asoundlib_h=no; fi]) -@@ -372,6 +373,13 @@ fi - WINE_WARNING_WITH(gettext,[test "$MSGFMT" = false], - [gettext tools not found (or too old), translations won't be built.]) +@@ -364,6 +365,13 @@ WINE_WARNING_WITH(gettext,[test "$MSGFMT" = false], + [gettext tools not found (or too old), translations won't be built.], + [enable_po]) +dnl **** Enable Exagear workarounds **** + @@ -35,7 +35,7 @@ index c9445e7..8a5b2d8 100644 dnl Check for -li386 for NetBSD and OpenBSD diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c -index 7121267..6976709 100644 +index ee8855a..4269329 100644 --- a/dlls/ntdll/signal_i386.c +++ b/dlls/ntdll/signal_i386.c @@ -96,6 +96,14 @@ typedef struct diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 26287d08..d8051f89 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "846155f1531207a763c099defa90fc2c41135164" + echo "6c637ab9c6a65d5601f98545b05f413f777c444e" } # Show version information @@ -6929,181 +6929,183 @@ fi # | dlls/winex11.drv/opengl.c # | if test "$enable_wined3d_CSMT_Main" -eq 1; then - patch_apply wined3d-CSMT_Main/0001-Revert-wined3d-Introduce-wined3d_texture_check_block.patch - patch_apply wined3d-CSMT_Main/0002-Revert-wined3d-Introduce-wined3d_texture_get_pitch.patch - patch_apply wined3d-CSMT_Main/0003-Revert-wined3d-Use-wined3d_format_calculate_pitch-in.patch - patch_apply wined3d-CSMT_Main/0004-Revert-wined3d-Handle-slice-pitch-and-alignment-as-w.patch - patch_apply wined3d-CSMT_Main/0005-Revert-wined3d-Store-custom-pitches-in-the-texture-i.patch - patch_apply wined3d-CSMT_Main/0006-Revert-wined3d-Store-the-user_memory-pointer-in-the-.patch - patch_apply wined3d-CSMT_Main/0007-wined3d-Merge-get_pitch-functions.patch - patch_apply wined3d-CSMT_Main/0008-wined3d-Pass-a-context-to-surface_load_location.patch - patch_apply wined3d-CSMT_Main/0009-wined3d-Make-surface_load_location-return-nothing.patch - patch_apply wined3d-CSMT_Main/0010-wined3d-Store-volume-locations-in-the-resource.patch - patch_apply wined3d-CSMT_Main/0011-wined3d-Move-validate_location-to-resource.c.patch - patch_apply wined3d-CSMT_Main/0012-wined3d-Move-surface-locations-into-the-resource.patch - patch_apply wined3d-CSMT_Main/0013-wined3d-Remove-surface_validate_location.patch - patch_apply wined3d-CSMT_Main/0014-wined3d-Move-invalidate_location-to-resource.c.patch - patch_apply wined3d-CSMT_Main/0015-wined3d-Invalidate-containers-via-callback.patch - patch_apply wined3d-CSMT_Main/0016-wined3d-Remove-surface_invalidate_location.patch - patch_apply wined3d-CSMT_Main/0017-wined3d-Move-bitmap_data-and-user_memory-into-the-re.patch - patch_apply wined3d-CSMT_Main/0018-wined3d-Move-load_location-into-the-resource.patch - patch_apply wined3d-CSMT_Main/0019-wined3d-Replace-surface_load_location-with-resource_.patch - patch_apply wined3d-CSMT_Main/0020-wined3d-Introduce-helper-functions-for-mapping-volum.patch - patch_apply wined3d-CSMT_Main/0021-wined3d-Move-volume-PBO-infrastructure-into-the-reso.patch - patch_apply wined3d-CSMT_Main/0022-wined3d-Remove-surface-pbo.patch - patch_apply wined3d-CSMT_Main/0023-wined3d-Use-resource-buffer-mapping-facilities-in-su.patch - patch_apply wined3d-CSMT_Main/0024-wined3d-Move-buffer-creation-into-the-resource.patch - patch_apply wined3d-CSMT_Main/0025-wined3d-Handle-WINED3D_LOCATION_DISCARDED-in-surface.patch - patch_apply wined3d-CSMT_Main/0026-wined3d-Handle-LOCATION_DISCARDED-in-surface_load_dr.patch - patch_apply wined3d-CSMT_Main/0027-wined3d-Handle-WINED3D_LOCATION_DISCARDED-for-sysmem.patch - patch_apply wined3d-CSMT_Main/0028-wined3d-Discard-implicit-surfaces-on-unload.patch - patch_apply wined3d-CSMT_Main/0029-wined3d-Don-t-try-to-flip-sysmem-copies-in-swapchain.patch - patch_apply wined3d-CSMT_Main/0030-wined3d-Discard-the-backbuffer-in-discard-presents.patch - patch_apply wined3d-CSMT_Main/0031-wined3d-Introduce-a-function-to-retrieve-resource-me.patch - patch_apply wined3d-CSMT_Main/0032-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch - patch_apply wined3d-CSMT_Main/0033-wined3d-Move-check_block_align-to-resource.c.patch - patch_apply wined3d-CSMT_Main/0034-wined3d-Replace-surface-alloc-functions-with-resourc.patch - patch_apply wined3d-CSMT_Main/0035-wined3d-Don-t-delete-the-buffer-in-surface_cleanup.patch - patch_apply wined3d-CSMT_Main/0036-wined3d-Use-resource-facilities-to-destroy-PBOs.patch - patch_apply wined3d-CSMT_Main/0037-wined3d-Move-simple-location-copying-to-the-resource.patch - patch_apply wined3d-CSMT_Main/0038-wined3d-Move-most-of-volume_map-to-resource.c.patch - patch_apply wined3d-CSMT_Main/0039-wined3d-Use-resource_map-for-surface_map.patch - patch_apply wined3d-CSMT_Main/0040-wined3d-Don-t-call-the-public-map-function-in-surfac.patch + patch_apply wined3d-CSMT_Main/0001-Revert-wined3d-Get-rid-of-the-offscreenBuffer-field-.patch + patch_apply wined3d-CSMT_Main/0002-Revert-wined3d-Introduce-wined3d_texture_check_block.patch + patch_apply wined3d-CSMT_Main/0003-Revert-wined3d-Introduce-wined3d_texture_get_pitch.patch + patch_apply wined3d-CSMT_Main/0004-Revert-wined3d-Use-wined3d_format_calculate_pitch-in.patch + patch_apply wined3d-CSMT_Main/0005-Revert-wined3d-Handle-slice-pitch-and-alignment-as-w.patch + patch_apply wined3d-CSMT_Main/0006-Revert-wined3d-Store-custom-pitches-in-the-texture-i.patch + patch_apply wined3d-CSMT_Main/0007-Revert-wined3d-Store-the-user_memory-pointer-in-the-.patch + patch_apply wined3d-CSMT_Main/0008-wined3d-Merge-get_pitch-functions.patch + patch_apply wined3d-CSMT_Main/0009-wined3d-Pass-a-context-to-surface_load_location.patch + patch_apply wined3d-CSMT_Main/0010-wined3d-Make-surface_load_location-return-nothing.patch + patch_apply wined3d-CSMT_Main/0011-wined3d-Store-volume-locations-in-the-resource.patch + patch_apply wined3d-CSMT_Main/0012-wined3d-Move-validate_location-to-resource.c.patch + patch_apply wined3d-CSMT_Main/0013-wined3d-Move-surface-locations-into-the-resource.patch + patch_apply wined3d-CSMT_Main/0014-wined3d-Remove-surface_validate_location.patch + patch_apply wined3d-CSMT_Main/0015-wined3d-Move-invalidate_location-to-resource.c.patch + patch_apply wined3d-CSMT_Main/0016-wined3d-Invalidate-containers-via-callback.patch + patch_apply wined3d-CSMT_Main/0017-wined3d-Remove-surface_invalidate_location.patch + patch_apply wined3d-CSMT_Main/0018-wined3d-Move-bitmap_data-and-user_memory-into-the-re.patch + patch_apply wined3d-CSMT_Main/0019-wined3d-Move-load_location-into-the-resource.patch + patch_apply wined3d-CSMT_Main/0020-wined3d-Replace-surface_load_location-with-resource_.patch + patch_apply wined3d-CSMT_Main/0021-wined3d-Introduce-helper-functions-for-mapping-volum.patch + patch_apply wined3d-CSMT_Main/0022-wined3d-Move-volume-PBO-infrastructure-into-the-reso.patch + patch_apply wined3d-CSMT_Main/0023-wined3d-Remove-surface-pbo.patch + patch_apply wined3d-CSMT_Main/0024-wined3d-Use-resource-buffer-mapping-facilities-in-su.patch + patch_apply wined3d-CSMT_Main/0025-wined3d-Move-buffer-creation-into-the-resource.patch + patch_apply wined3d-CSMT_Main/0026-wined3d-Handle-WINED3D_LOCATION_DISCARDED-in-surface.patch + patch_apply wined3d-CSMT_Main/0027-wined3d-Handle-LOCATION_DISCARDED-in-surface_load_dr.patch + patch_apply wined3d-CSMT_Main/0028-wined3d-Handle-WINED3D_LOCATION_DISCARDED-for-sysmem.patch + patch_apply wined3d-CSMT_Main/0029-wined3d-Discard-implicit-surfaces-on-unload.patch + patch_apply wined3d-CSMT_Main/0030-wined3d-Don-t-try-to-flip-sysmem-copies-in-swapchain.patch + patch_apply wined3d-CSMT_Main/0031-wined3d-Discard-the-backbuffer-in-discard-presents.patch + patch_apply wined3d-CSMT_Main/0032-wined3d-Introduce-a-function-to-retrieve-resource-me.patch + patch_apply wined3d-CSMT_Main/0033-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch + patch_apply wined3d-CSMT_Main/0034-wined3d-Move-check_block_align-to-resource.c.patch + patch_apply wined3d-CSMT_Main/0035-wined3d-Replace-surface-alloc-functions-with-resourc.patch + patch_apply wined3d-CSMT_Main/0036-wined3d-Don-t-delete-the-buffer-in-surface_cleanup.patch + patch_apply wined3d-CSMT_Main/0037-wined3d-Use-resource-facilities-to-destroy-PBOs.patch + patch_apply wined3d-CSMT_Main/0038-wined3d-Move-simple-location-copying-to-the-resource.patch + patch_apply wined3d-CSMT_Main/0039-wined3d-Move-most-of-volume_map-to-resource.c.patch + patch_apply wined3d-CSMT_Main/0040-wined3d-Use-resource_map-for-surface_map.patch patch_apply wined3d-CSMT_Main/0041-wined3d-Don-t-call-the-public-map-function-in-surfac.patch - patch_apply wined3d-CSMT_Main/0042-wined3d-Move-the-framebuffer-into-wined3d_state.patch - patch_apply wined3d-CSMT_Main/0043-wined3d-Get-rid-of-state-access-in-shader_generate_g.patch - patch_apply wined3d-CSMT_Main/0044-wined3d-Preload-buffers-if-streamsrc-is-not-dirty.patch - patch_apply wined3d-CSMT_Main/0045-wined3d-Hackily-introduce-a-multithreaded-command-st.patch - patch_apply wined3d-CSMT_Main/0046-wined3d-Wait-for-resource-updates-to-finish-when-usi.patch - patch_apply wined3d-CSMT_Main/0047-wined3d-Don-t-store-pointers-in-struct-wined3d_cs_pr.patch - patch_apply wined3d-CSMT_Main/0048-wined3d-Don-t-put-rectangle-pointers-into-wined3d_cs.patch - patch_apply wined3d-CSMT_Main/0049-wined3d-Store-the-color-in-clear-ops-instead-of-a-po.patch - patch_apply wined3d-CSMT_Main/0050-wined3d-Pass-the-state-to-draw_primitive.patch - patch_apply wined3d-CSMT_Main/0051-wined3d-Wait-for-the-cs-before-destroying-objects.patch - patch_apply wined3d-CSMT_Main/0052-wined3d-Give-the-cs-its-own-state.patch - patch_apply wined3d-CSMT_Main/0053-wined3d-Send-float-constant-updates-through-the-comm.patch - patch_apply wined3d-CSMT_Main/0054-wined3d-Request-a-glFinish-before-modifying-resource.patch - patch_apply wined3d-CSMT_Main/0055-wined3d-Finish-the-cs-before-changing-the-texture-lo.patch - patch_apply wined3d-CSMT_Main/0056-wined3d-Don-t-call-glFinish-after-clears.patch - patch_apply wined3d-CSMT_Main/0057-wined3d-Don-t-call-glFinish-after-draws.patch - patch_apply wined3d-CSMT_Main/0058-wined3d-Shadow-device-offscreenBuffer-in-the-context.patch - patch_apply wined3d-CSMT_Main/0059-wined3d-Don-t-access-the-stateblock-in-find_draw_buf.patch - patch_apply wined3d-CSMT_Main/0060-wined3d-Pass-the-depth-stencil-to-swapchain-present.patch - patch_apply wined3d-CSMT_Main/0061-wined3d-Don-t-store-viewport-pointers-in-the-command.patch - patch_apply wined3d-CSMT_Main/0062-wined3d-Keep-track-of-the-onscreen-depth-stencil-in-.patch - patch_apply wined3d-CSMT_Main/0063-wined3d-Send-base-vertex-index-updates-through-the-c.patch - patch_apply wined3d-CSMT_Main/0064-wined3d-Send-primitive-type-updates-through-the-comm.patch - patch_apply wined3d-CSMT_Main/0065-wined3d-Send-bool-constant-updates-through-the-comma.patch - patch_apply wined3d-CSMT_Main/0066-wined3d-Send-int-constant-updates-through-the-comman.patch - patch_apply wined3d-CSMT_Main/0067-wined3d-Send-light-updates-through-the-command-strea.patch - patch_apply wined3d-CSMT_Main/0068-wined3d-Prevent-the-command-stream-from-running-ahea.patch - patch_apply wined3d-CSMT_Main/0069-wined3d-Wait-for-the-cs-to-finish-before-destroying-.patch - patch_apply wined3d-CSMT_Main/0070-wined3d-Run-the-cs-asynchronously.patch - patch_apply wined3d-CSMT_Main/0071-wined3d-Send-blits-through-the-command-stream.patch - patch_apply wined3d-CSMT_Main/0072-wined3d-Get-rid-of-WINED3D_BUFFER_FLUSH.patch - patch_apply wined3d-CSMT_Main/0073-wined3d-Don-t-force-strict-draw-ordering-for-multith.patch - patch_apply wined3d-CSMT_Main/0074-wined3d-Send-render-target-view-clears-through-the-c.patch - patch_apply wined3d-CSMT_Main/0075-wined3d-Wait-for-the-CS-in-GetDC.patch - patch_apply wined3d-CSMT_Main/0076-wined3d-send-resource-maps-through-the-command-strea.patch - patch_apply wined3d-CSMT_Main/0077-wined3d-Get-rid-of-the-end_scene-flush-and-finish.patch - patch_apply wined3d-CSMT_Main/0078-wined3d-Replace-the-linked-lists-with-a-ringbuffer.patch - patch_apply wined3d-CSMT_Main/0079-wined3d-Don-t-preload-buffers-on-unmap.patch - patch_apply wined3d-CSMT_Main/0080-wined3d-Don-t-call-glFinish-before-swapping.patch - patch_apply wined3d-CSMT_Main/0081-wined3d-wined3d_-_query_issue-never-fails.patch - patch_apply wined3d-CSMT_Main/0082-wined3d-Add-query-support-to-the-command-stream.patch - patch_apply wined3d-CSMT_Main/0083-wined3d-Check-our-CS-state-to-find-out-if-a-query-is.patch - patch_apply wined3d-CSMT_Main/0084-wined3d-Poll-queries-automatically-in-the-CS.patch - patch_apply wined3d-CSMT_Main/0085-wined3d-Introduce-a-separate-queue-for-priority-comm.patch - patch_apply wined3d-CSMT_Main/0086-wined3d-Destroy-queries-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0087-wined3d-Separate-main-and-worker-thread-query-state.patch - patch_apply wined3d-CSMT_Main/0088-wined3d-Don-t-poll-queries-that-failed-to-start.patch - patch_apply wined3d-CSMT_Main/0089-wined3d-Remove-restated-queries-from-the-poll-list.patch - patch_apply wined3d-CSMT_Main/0090-wined3d-Don-t-reset-the-query-state-if-it-doesn-t-ha.patch - patch_apply wined3d-CSMT_Main/0091-wined3d-Put-this-into-the-query-poll-patch.patch - patch_apply wined3d-CSMT_Main/0092-wined3d-Send-texture-preloads-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0093-wined3d-Send-update_texture-calls-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0094-wined3d-Get-rid-of-the-surface_upload_data-glFinish.patch - patch_apply wined3d-CSMT_Main/0095-wined3d-Don-t-lock-the-src-volume-in-device_update_v.patch - patch_apply wined3d-CSMT_Main/0096-wined3d-Handle-evit_managed_resources-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0097-wined3d-Introduce-resource-fencing.patch - patch_apply wined3d-CSMT_Main/0098-wined3d-Fence-update_texture-and-update_surface-call.patch - patch_apply wined3d-CSMT_Main/0099-wined3d-Dirtify-resources-on-unmap.patch - patch_apply wined3d-CSMT_Main/0100-wined3d-Fence-texture-reads-in-draws.patch - patch_apply wined3d-CSMT_Main/0101-wined3d-Fence-render-targets-and-depth-stencils.patch - patch_apply wined3d-CSMT_Main/0102-wined3d-Fence-blit-operations.patch - patch_apply wined3d-CSMT_Main/0103-wined3d-Fence-color_fill-operations.patch - patch_apply wined3d-CSMT_Main/0104-wined3d-Fence-clear-calls.patch - patch_apply wined3d-CSMT_Main/0105-wined3d-Fence-present-calls.patch - patch_apply wined3d-CSMT_Main/0106-wined3d-Make-resource-maps-and-unmaps-a-priority-com.patch - patch_apply wined3d-CSMT_Main/0107-wined3d-Dirtify-changed-textures-through-the-command.patch - patch_apply wined3d-CSMT_Main/0108-wined3d-Wrap-GL-BOs-in-a-structure.patch - patch_apply wined3d-CSMT_Main/0109-wined3d-Separate-resource-map-and-draw-buffers.patch - patch_apply wined3d-CSMT_Main/0110-wined3d-Implement-DISCARD-resource-maps-with-buffers.patch - patch_apply wined3d-CSMT_Main/0111-wined3d-Implement-DISCARD-resource-maps-with-heap-me.patch - patch_apply wined3d-CSMT_Main/0112-wined3d-Unset-some-objects-in-state_init_default.patch - patch_apply wined3d-CSMT_Main/0113-wined3d-Don-t-request-the-frontbuffer-to-create-dumm.patch - patch_apply wined3d-CSMT_Main/0114-wined3d-Use-double-buffered-buffers-for-multithreade.patch - patch_apply wined3d-CSMT_Main/0115-wined3d-Don-t-synchronize-NOOVERWRITE-buffer-maps.patch - patch_apply wined3d-CSMT_Main/0116-wined3d-Separate-buffer-map-write-and-draw-read-memo.patch - patch_apply wined3d-CSMT_Main/0117-wined3d-Accelerate-DISCARD-buffer-maps.patch - patch_apply wined3d-CSMT_Main/0118-wined3d-Accelerate-READONLY-buffer-maps.patch - patch_apply wined3d-CSMT_Main/0119-wined3d-Access-the-buffer-dirty-areas-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0120-wined3d-Ignore-buffer-resource.map_count-in-the-CS.patch - patch_apply wined3d-CSMT_Main/0121-wined3d-Send-buffer-preloads-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0122-wined3d-Use-glBufferSubData-instead-of-glMapBufferRa.patch - patch_apply wined3d-CSMT_Main/0123-wined3d-Separate-GL-buffer-discard-control-from-igno.patch - patch_apply wined3d-CSMT_Main/0124-wined3d-Create-buffers-before-mapping-them.patch - patch_apply wined3d-CSMT_Main/0125-wined3d-Destroy-views-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0126-wined3d-Remove-another-glFinish.patch - patch_apply wined3d-CSMT_Main/0127-wined3d-Destroy-vertex-declarations-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0128-wined3d-Destroy-shaders-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0129-wined3d-Create-VBOs-through-the-command-stream.patch - patch_apply wined3d-CSMT_Main/0130-wined3d-Clean-up-resource-data-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0131-wined3d-Clean-up-buffer-resource-data-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0132-wined3d-Clean-up-volume-resource-data-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0133-wined3d-Clean-up-surfaces-through-the-cs.patch - patch_apply wined3d-CSMT_Main/0134-wined3d-Clean-up-texture-resources-through-the-cs.patch - patch_apply wined3d-CSMT_Main/0135-wined3d-Unload-resources-through-the-CS-in-uninit_3d.patch - patch_apply wined3d-CSMT_Main/0136-wined3d-Unload-resources-through-the-CS-in-device_re.patch - patch_apply wined3d-CSMT_Main/0137-wined3d-Don-t-glFinish-after-a-depth-buffer-blit.patch - patch_apply wined3d-CSMT_Main/0138-wined3d-Remove-software-cursor-support.patch - patch_apply wined3d-CSMT_Main/0139-wined3d-Create-dummy-textures-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0140-wined3d-Create-the-initial-context-through-the-CS.patch - patch_apply wined3d-CSMT_Main/0141-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch - patch_apply wined3d-CSMT_Main/0142-wined3d-Ignore-WINED3D_MAP_NO_DIRTY_UPDATE-in-resour.patch - patch_apply wined3d-CSMT_Main/0143-wined3d-Delete-GL-contexts-through-the-CS-in-reset.patch - patch_apply wined3d-CSMT_Main/0144-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch - patch_apply wined3d-CSMT_Main/0145-wined3d-Invoke-surface_unload-through-the-CS-in-wine.patch - patch_apply wined3d-CSMT_Main/0146-wined3d-Use-an-event-to-block-the-worker-thread-when.patch - patch_apply wined3d-CSMT_Main/0147-wined3d-Fence-preload-operations.patch - patch_apply wined3d-CSMT_Main/0148-d3d8-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch - patch_apply wined3d-CSMT_Main/0149-d3d9-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch - patch_apply wined3d-CSMT_Main/0150-wined3d-Completely-reset-the-state-on-reset.patch - patch_apply wined3d-CSMT_Main/0151-wined3d-Send-getdc-and-releasedc-through-the-command.patch - patch_apply wined3d-CSMT_Main/0152-wined3d-Set-map_heap_memory-NULL-when-allocating-a-P.patch - patch_apply wined3d-CSMT_Main/0153-wined3d-Wait-only-for-the-buffer-to-be-idle.patch - patch_apply wined3d-CSMT_Main/0154-wined3d-Add-a-comment-about-worker-thread-lag.patch - patch_apply wined3d-CSMT_Main/0155-wined3d-Remove-the-texture-destroy-glFinish.patch - patch_apply wined3d-CSMT_Main/0156-wined3d-Move-FBO-destruction-into-the-worker-thread.patch - patch_apply wined3d-CSMT_Main/0157-wined3d-Don-t-incref-decref-textures-in-color-depth-.patch - patch_apply wined3d-CSMT_Main/0158-Winex11-complain-about-glfinish.patch - patch_apply wined3d-CSMT_Main/0159-wined3d-Make-sure-the-new-window-is-set-up-before-se.patch - patch_apply wined3d-CSMT_Main/0160-wined3d-Remove-the-device_reset-CS-sync-fixme.patch - patch_apply wined3d-CSMT_Main/0161-wined3d-Put-GL_APPLE_flush_buffer_range-syncing-back.patch - patch_apply wined3d-CSMT_Main/0162-wined3d-Wait-for-the-resource-to-be-idle-when-destro.patch - patch_apply wined3d-CSMT_Main/0163-wined3d-Don-t-sync-on-redundant-discard-calls.patch - patch_apply wined3d-CSMT_Main/0164-wined3d-Don-t-discard-new-buffers.patch - patch_apply wined3d-CSMT_Main/0165-wined3d-Don-t-try-to-sync-VBOs-manually-on-OSX-with-.patch - patch_apply wined3d-CSMT_Main/0166-wined3d-Render-target-lock-hack.patch - patch_apply wined3d-CSMT_Main/0167-wined3d-Avoid-calling-wined3d_surface_blt-from-surfa.patch - patch_apply wined3d-CSMT_Main/0168-wined3d-Only-discard-buffers-that-are-in-use.patch - patch_apply wined3d-CSMT_Main/0169-wined3d-Destroy-samplers-through-the-command-stream.patch - patch_apply wined3d-CSMT_Main/0170-wined3d-Hack-to-reject-unsupported-color-fills.patch - patch_apply wined3d-CSMT_Main/0171-wined3d-Alloc-the-buffer-map-array-before-mapping-th.patch - patch_apply wined3d-CSMT_Main/0172-wined3d-Send-update_sub_resource-calls-through-the-c.patch + patch_apply wined3d-CSMT_Main/0042-wined3d-Don-t-call-the-public-map-function-in-surfac.patch + patch_apply wined3d-CSMT_Main/0043-wined3d-Move-the-framebuffer-into-wined3d_state.patch + patch_apply wined3d-CSMT_Main/0044-wined3d-Get-rid-of-state-access-in-shader_generate_g.patch + patch_apply wined3d-CSMT_Main/0045-wined3d-Preload-buffers-if-streamsrc-is-not-dirty.patch + patch_apply wined3d-CSMT_Main/0046-wined3d-Hackily-introduce-a-multithreaded-command-st.patch + patch_apply wined3d-CSMT_Main/0047-wined3d-Wait-for-resource-updates-to-finish-when-usi.patch + patch_apply wined3d-CSMT_Main/0048-wined3d-Don-t-store-pointers-in-struct-wined3d_cs_pr.patch + patch_apply wined3d-CSMT_Main/0049-wined3d-Don-t-put-rectangle-pointers-into-wined3d_cs.patch + patch_apply wined3d-CSMT_Main/0050-wined3d-Store-the-color-in-clear-ops-instead-of-a-po.patch + patch_apply wined3d-CSMT_Main/0051-wined3d-Pass-the-state-to-draw_primitive.patch + patch_apply wined3d-CSMT_Main/0052-wined3d-Wait-for-the-cs-before-destroying-objects.patch + patch_apply wined3d-CSMT_Main/0053-wined3d-Give-the-cs-its-own-state.patch + patch_apply wined3d-CSMT_Main/0054-wined3d-Send-float-constant-updates-through-the-comm.patch + patch_apply wined3d-CSMT_Main/0055-wined3d-Request-a-glFinish-before-modifying-resource.patch + patch_apply wined3d-CSMT_Main/0056-wined3d-Finish-the-cs-before-changing-the-texture-lo.patch + patch_apply wined3d-CSMT_Main/0057-wined3d-Don-t-call-glFinish-after-clears.patch + patch_apply wined3d-CSMT_Main/0058-wined3d-Don-t-call-glFinish-after-draws.patch + patch_apply wined3d-CSMT_Main/0059-wined3d-Shadow-device-offscreenBuffer-in-the-context.patch + patch_apply wined3d-CSMT_Main/0060-wined3d-Don-t-access-the-stateblock-in-find_draw_buf.patch + patch_apply wined3d-CSMT_Main/0061-wined3d-Pass-the-depth-stencil-to-swapchain-present.patch + patch_apply wined3d-CSMT_Main/0062-wined3d-Don-t-store-viewport-pointers-in-the-command.patch + patch_apply wined3d-CSMT_Main/0063-wined3d-Keep-track-of-the-onscreen-depth-stencil-in-.patch + patch_apply wined3d-CSMT_Main/0064-wined3d-Send-base-vertex-index-updates-through-the-c.patch + patch_apply wined3d-CSMT_Main/0065-wined3d-Send-primitive-type-updates-through-the-comm.patch + patch_apply wined3d-CSMT_Main/0066-wined3d-Send-bool-constant-updates-through-the-comma.patch + patch_apply wined3d-CSMT_Main/0067-wined3d-Send-int-constant-updates-through-the-comman.patch + patch_apply wined3d-CSMT_Main/0068-wined3d-Send-light-updates-through-the-command-strea.patch + patch_apply wined3d-CSMT_Main/0069-wined3d-Prevent-the-command-stream-from-running-ahea.patch + patch_apply wined3d-CSMT_Main/0070-wined3d-Wait-for-the-cs-to-finish-before-destroying-.patch + patch_apply wined3d-CSMT_Main/0071-wined3d-Run-the-cs-asynchronously.patch + patch_apply wined3d-CSMT_Main/0072-wined3d-Send-blits-through-the-command-stream.patch + patch_apply wined3d-CSMT_Main/0073-wined3d-Get-rid-of-WINED3D_BUFFER_FLUSH.patch + patch_apply wined3d-CSMT_Main/0074-wined3d-Don-t-force-strict-draw-ordering-for-multith.patch + patch_apply wined3d-CSMT_Main/0075-wined3d-Send-render-target-view-clears-through-the-c.patch + patch_apply wined3d-CSMT_Main/0076-wined3d-Wait-for-the-CS-in-GetDC.patch + patch_apply wined3d-CSMT_Main/0077-wined3d-send-resource-maps-through-the-command-strea.patch + patch_apply wined3d-CSMT_Main/0078-wined3d-Get-rid-of-the-end_scene-flush-and-finish.patch + patch_apply wined3d-CSMT_Main/0079-wined3d-Replace-the-linked-lists-with-a-ringbuffer.patch + patch_apply wined3d-CSMT_Main/0080-wined3d-Don-t-preload-buffers-on-unmap.patch + patch_apply wined3d-CSMT_Main/0081-wined3d-Don-t-call-glFinish-before-swapping.patch + patch_apply wined3d-CSMT_Main/0082-wined3d-wined3d_-_query_issue-never-fails.patch + patch_apply wined3d-CSMT_Main/0083-wined3d-Add-query-support-to-the-command-stream.patch + patch_apply wined3d-CSMT_Main/0084-wined3d-Check-our-CS-state-to-find-out-if-a-query-is.patch + patch_apply wined3d-CSMT_Main/0085-wined3d-Poll-queries-automatically-in-the-CS.patch + patch_apply wined3d-CSMT_Main/0086-wined3d-Introduce-a-separate-queue-for-priority-comm.patch + patch_apply wined3d-CSMT_Main/0087-wined3d-Destroy-queries-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0088-wined3d-Separate-main-and-worker-thread-query-state.patch + patch_apply wined3d-CSMT_Main/0089-wined3d-Don-t-poll-queries-that-failed-to-start.patch + patch_apply wined3d-CSMT_Main/0090-wined3d-Remove-restated-queries-from-the-poll-list.patch + patch_apply wined3d-CSMT_Main/0091-wined3d-Don-t-reset-the-query-state-if-it-doesn-t-ha.patch + patch_apply wined3d-CSMT_Main/0092-wined3d-Put-this-into-the-query-poll-patch.patch + patch_apply wined3d-CSMT_Main/0093-wined3d-Send-texture-preloads-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0094-wined3d-Send-update_texture-calls-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0095-wined3d-Get-rid-of-the-surface_upload_data-glFinish.patch + patch_apply wined3d-CSMT_Main/0096-wined3d-Don-t-lock-the-src-volume-in-device_update_v.patch + patch_apply wined3d-CSMT_Main/0097-wined3d-Handle-evit_managed_resources-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0098-wined3d-Introduce-resource-fencing.patch + patch_apply wined3d-CSMT_Main/0099-wined3d-Fence-update_texture-and-update_surface-call.patch + patch_apply wined3d-CSMT_Main/0100-wined3d-Dirtify-resources-on-unmap.patch + patch_apply wined3d-CSMT_Main/0101-wined3d-Fence-texture-reads-in-draws.patch + patch_apply wined3d-CSMT_Main/0102-wined3d-Fence-render-targets-and-depth-stencils.patch + patch_apply wined3d-CSMT_Main/0103-wined3d-Fence-blit-operations.patch + patch_apply wined3d-CSMT_Main/0104-wined3d-Fence-color_fill-operations.patch + patch_apply wined3d-CSMT_Main/0105-wined3d-Fence-clear-calls.patch + patch_apply wined3d-CSMT_Main/0106-wined3d-Fence-present-calls.patch + patch_apply wined3d-CSMT_Main/0107-wined3d-Make-resource-maps-and-unmaps-a-priority-com.patch + patch_apply wined3d-CSMT_Main/0108-wined3d-Dirtify-changed-textures-through-the-command.patch + patch_apply wined3d-CSMT_Main/0109-wined3d-Wrap-GL-BOs-in-a-structure.patch + patch_apply wined3d-CSMT_Main/0110-wined3d-Separate-resource-map-and-draw-buffers.patch + patch_apply wined3d-CSMT_Main/0111-wined3d-Implement-DISCARD-resource-maps-with-buffers.patch + patch_apply wined3d-CSMT_Main/0112-wined3d-Implement-DISCARD-resource-maps-with-heap-me.patch + patch_apply wined3d-CSMT_Main/0113-wined3d-Unset-some-objects-in-state_init_default.patch + patch_apply wined3d-CSMT_Main/0114-wined3d-Don-t-request-the-frontbuffer-to-create-dumm.patch + patch_apply wined3d-CSMT_Main/0115-wined3d-Use-double-buffered-buffers-for-multithreade.patch + patch_apply wined3d-CSMT_Main/0116-wined3d-Don-t-synchronize-NOOVERWRITE-buffer-maps.patch + patch_apply wined3d-CSMT_Main/0117-wined3d-Separate-buffer-map-write-and-draw-read-memo.patch + patch_apply wined3d-CSMT_Main/0118-wined3d-Accelerate-DISCARD-buffer-maps.patch + patch_apply wined3d-CSMT_Main/0119-wined3d-Accelerate-READONLY-buffer-maps.patch + patch_apply wined3d-CSMT_Main/0120-wined3d-Access-the-buffer-dirty-areas-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0121-wined3d-Ignore-buffer-resource.map_count-in-the-CS.patch + patch_apply wined3d-CSMT_Main/0122-wined3d-Send-buffer-preloads-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0123-wined3d-Use-glBufferSubData-instead-of-glMapBufferRa.patch + patch_apply wined3d-CSMT_Main/0124-wined3d-Separate-GL-buffer-discard-control-from-igno.patch + patch_apply wined3d-CSMT_Main/0125-wined3d-Create-buffers-before-mapping-them.patch + patch_apply wined3d-CSMT_Main/0126-wined3d-Destroy-views-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0127-wined3d-Remove-another-glFinish.patch + patch_apply wined3d-CSMT_Main/0128-wined3d-Destroy-vertex-declarations-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0129-wined3d-Destroy-shaders-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0130-wined3d-Create-VBOs-through-the-command-stream.patch + patch_apply wined3d-CSMT_Main/0131-wined3d-Clean-up-resource-data-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0132-wined3d-Clean-up-buffer-resource-data-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0133-wined3d-Clean-up-volume-resource-data-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0134-wined3d-Clean-up-surfaces-through-the-cs.patch + patch_apply wined3d-CSMT_Main/0135-wined3d-Clean-up-texture-resources-through-the-cs.patch + patch_apply wined3d-CSMT_Main/0136-wined3d-Unload-resources-through-the-CS-in-uninit_3d.patch + patch_apply wined3d-CSMT_Main/0137-wined3d-Unload-resources-through-the-CS-in-device_re.patch + patch_apply wined3d-CSMT_Main/0138-wined3d-Don-t-glFinish-after-a-depth-buffer-blit.patch + patch_apply wined3d-CSMT_Main/0139-wined3d-Remove-software-cursor-support.patch + patch_apply wined3d-CSMT_Main/0140-wined3d-Create-dummy-textures-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0141-wined3d-Create-the-initial-context-through-the-CS.patch + patch_apply wined3d-CSMT_Main/0142-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch + patch_apply wined3d-CSMT_Main/0143-wined3d-Ignore-WINED3D_MAP_NO_DIRTY_UPDATE-in-resour.patch + patch_apply wined3d-CSMT_Main/0144-wined3d-Delete-GL-contexts-through-the-CS-in-reset.patch + patch_apply wined3d-CSMT_Main/0145-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch + patch_apply wined3d-CSMT_Main/0146-wined3d-Invoke-surface_unload-through-the-CS-in-wine.patch + patch_apply wined3d-CSMT_Main/0147-wined3d-Use-an-event-to-block-the-worker-thread-when.patch + patch_apply wined3d-CSMT_Main/0148-wined3d-Fence-preload-operations.patch + patch_apply wined3d-CSMT_Main/0149-d3d8-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch + patch_apply wined3d-CSMT_Main/0150-d3d9-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch + patch_apply wined3d-CSMT_Main/0151-wined3d-Completely-reset-the-state-on-reset.patch + patch_apply wined3d-CSMT_Main/0152-wined3d-Send-getdc-and-releasedc-through-the-command.patch + patch_apply wined3d-CSMT_Main/0153-wined3d-Set-map_heap_memory-NULL-when-allocating-a-P.patch + patch_apply wined3d-CSMT_Main/0154-wined3d-Wait-only-for-the-buffer-to-be-idle.patch + patch_apply wined3d-CSMT_Main/0155-wined3d-Add-a-comment-about-worker-thread-lag.patch + patch_apply wined3d-CSMT_Main/0156-wined3d-Remove-the-texture-destroy-glFinish.patch + patch_apply wined3d-CSMT_Main/0157-wined3d-Move-FBO-destruction-into-the-worker-thread.patch + patch_apply wined3d-CSMT_Main/0158-wined3d-Don-t-incref-decref-textures-in-color-depth-.patch + patch_apply wined3d-CSMT_Main/0159-Winex11-complain-about-glfinish.patch + patch_apply wined3d-CSMT_Main/0160-wined3d-Make-sure-the-new-window-is-set-up-before-se.patch + patch_apply wined3d-CSMT_Main/0161-wined3d-Remove-the-device_reset-CS-sync-fixme.patch + patch_apply wined3d-CSMT_Main/0162-wined3d-Put-GL_APPLE_flush_buffer_range-syncing-back.patch + patch_apply wined3d-CSMT_Main/0163-wined3d-Wait-for-the-resource-to-be-idle-when-destro.patch + patch_apply wined3d-CSMT_Main/0164-wined3d-Don-t-sync-on-redundant-discard-calls.patch + patch_apply wined3d-CSMT_Main/0165-wined3d-Don-t-discard-new-buffers.patch + patch_apply wined3d-CSMT_Main/0166-wined3d-Don-t-try-to-sync-VBOs-manually-on-OSX-with-.patch + patch_apply wined3d-CSMT_Main/0167-wined3d-Render-target-lock-hack.patch + patch_apply wined3d-CSMT_Main/0168-wined3d-Avoid-calling-wined3d_surface_blt-from-surfa.patch + patch_apply wined3d-CSMT_Main/0169-wined3d-Only-discard-buffers-that-are-in-use.patch + patch_apply wined3d-CSMT_Main/0170-wined3d-Destroy-samplers-through-the-command-stream.patch + patch_apply wined3d-CSMT_Main/0171-wined3d-Hack-to-reject-unsupported-color-fills.patch + patch_apply wined3d-CSMT_Main/0172-wined3d-Alloc-the-buffer-map-array-before-mapping-th.patch + patch_apply wined3d-CSMT_Main/0173-wined3d-Send-update_sub_resource-calls-through-the-c.patch patch_apply wined3d-CSMT_Main/9998-wined3d-Enable-CSMT-by-default-print-a-winediag-mess.patch patch_apply wined3d-CSMT_Main/9999-IfDefined.patch ( + echo '+ { "Sebastian Lackner", "Revert \"wined3d: Get rid of the offscreenBuffer field in struct wined3d_device.\".", 1 },'; echo '+ { "Sebastian Lackner", "Revert \"wined3d: Introduce wined3d_texture_check_block_align().\".", 1 },'; echo '+ { "Sebastian Lackner", "Revert \"wined3d: Introduce wined3d_texture_get_pitch().\".", 1 },'; echo '+ { "Sebastian Lackner", "Revert \"wined3d: Use wined3d_format_calculate_pitch() in surface_download_data().\".", 1 },'; diff --git a/patches/wined3d-CSMT_Main/0001-Revert-wined3d-Get-rid-of-the-offscreenBuffer-field-.patch b/patches/wined3d-CSMT_Main/0001-Revert-wined3d-Get-rid-of-the-offscreenBuffer-field-.patch new file mode 100644 index 00000000..429a1952 --- /dev/null +++ b/patches/wined3d-CSMT_Main/0001-Revert-wined3d-Get-rid-of-the-offscreenBuffer-field-.patch @@ -0,0 +1,246 @@ +From a51564803334f940d200b0f3f1f7a94cfc13425f Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Wed, 2 Mar 2016 16:28:44 +0100 +Subject: Revert "wined3d: Get rid of the offscreenBuffer field in struct + wined3d_device." + +This reverts commit 9dc89561027f32b08978b9fb75da5a0d0966f999. +--- + dlls/wined3d/context.c | 37 ++++++++++++------------------------- + dlls/wined3d/device.c | 21 +++++++++++++++++++++ + dlls/wined3d/surface.c | 13 +++++-------- + dlls/wined3d/wined3d_private.h | 4 +++- + 4 files changed, 41 insertions(+), 34 deletions(-) + +diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c +index 6f065ba..d0deff9 100644 +--- a/dlls/wined3d/context.c ++++ b/dlls/wined3d/context.c +@@ -2419,30 +2419,14 @@ static void context_validate_onscreen_formats(struct wined3d_context *context, + context_set_render_offscreen(context, TRUE); + } + +-GLenum context_get_offscreen_gl_buffer(const struct wined3d_context *context) +-{ +- switch (wined3d_settings.offscreen_rendering_mode) +- { +- case ORM_FBO: +- return GL_COLOR_ATTACHMENT0; +- +- case ORM_BACKBUFFER: +- return context->aux_buffers > 0 ? GL_AUX0 : GL_BACK; +- +- default: +- FIXME("Unhandled offscreen rendering mode %#x.\n", wined3d_settings.offscreen_rendering_mode); +- return GL_BACK; +- } +-} +- +-static DWORD context_generate_rt_mask_no_fbo(const struct wined3d_context *context, const struct wined3d_surface *rt) ++static DWORD context_generate_rt_mask_no_fbo(const struct wined3d_device *device, const struct wined3d_surface *rt) + { + if (!rt || rt->resource.format->id == WINED3DFMT_NULL) + return 0; + else if (rt->container->swapchain) + return context_generate_rt_mask_from_surface(rt); + else +- return context_generate_rt_mask(context_get_offscreen_gl_buffer(context)); ++ return context_generate_rt_mask(device->offscreenBuffer); + } + + /* Context activation is done by the caller. */ +@@ -2474,7 +2458,7 @@ void context_apply_blit_state(struct wined3d_context *context, const struct wine + } + else + { +- rt_mask = context_generate_rt_mask_no_fbo(context, rt); ++ rt_mask = context_generate_rt_mask_no_fbo(device, rt); + } + + cur_mask = context->current_fbo ? &context->current_fbo->rt_mask : &context->draw_buffers_mask; +@@ -2563,7 +2547,7 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win + } + else + { +- rt_mask = context_generate_rt_mask_no_fbo(context, ++ rt_mask = context_generate_rt_mask_no_fbo(device, + rt_count ? wined3d_rendertarget_view_get_surface(rts[0]) : NULL); + } + } +@@ -2578,7 +2562,7 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win + } + else + { +- rt_mask = context_generate_rt_mask_no_fbo(context, ++ rt_mask = context_generate_rt_mask_no_fbo(device, + rt_count ? wined3d_rendertarget_view_get_surface(rts[0]) : NULL); + } + +@@ -2622,15 +2606,16 @@ BOOL context_apply_clear_state(struct wined3d_context *context, const struct win + return TRUE; + } + +-static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const struct wined3d_state *state) ++static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const struct wined3d_device *device) + { ++ const struct wined3d_state *state = &device->state; + struct wined3d_rendertarget_view **rts = state->fb->render_targets; + struct wined3d_shader *ps = state->shader[WINED3D_SHADER_TYPE_PIXEL]; + DWORD rt_mask, rt_mask_bits; + unsigned int i; + + if (wined3d_settings.offscreen_rendering_mode != ORM_FBO) +- return context_generate_rt_mask_no_fbo(context, wined3d_rendertarget_view_get_surface(rts[0])); ++ return context_generate_rt_mask_no_fbo(device, wined3d_rendertarget_view_get_surface(rts[0])); + else if (!context->render_offscreen) + return context_generate_rt_mask_from_surface(wined3d_rendertarget_view_get_surface(rts[0])); + +@@ -2653,8 +2638,9 @@ static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const + /* Context activation is done by the caller. */ + void context_state_fb(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) + { +- DWORD rt_mask = find_draw_buffers_mask(context, state); ++ const struct wined3d_device *device = context->swapchain->device; + const struct wined3d_fb_state *fb = state->fb; ++ DWORD rt_mask = find_draw_buffers_mask(context, device); + DWORD *cur_mask; + + if (wined3d_settings.offscreen_rendering_mode == ORM_FBO) +@@ -2931,12 +2917,13 @@ static void context_update_tex_unit_map(struct wined3d_context *context, const s + /* Context activation is done by the caller. */ + void context_state_drawbuf(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) + { ++ const struct wined3d_device *device = context->swapchain->device; + DWORD rt_mask, *cur_mask; + + if (isStateDirty(context, STATE_FRAMEBUFFER)) return; + + cur_mask = context->current_fbo ? &context->current_fbo->rt_mask : &context->draw_buffers_mask; +- rt_mask = find_draw_buffers_mask(context, state); ++ rt_mask = find_draw_buffers_mask(context, device); + if (rt_mask != *cur_mask) + { + context_apply_draw_buffers(context, rt_mask); +diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c +index ded1229..4cebcb8 100644 +--- a/dlls/wined3d/device.c ++++ b/dlls/wined3d/device.c +@@ -1021,6 +1021,27 @@ HRESULT CDECL wined3d_device_init_3d(struct wined3d_device *device, + + device->contexts[0]->last_was_rhw = 0; + ++ switch (wined3d_settings.offscreen_rendering_mode) ++ { ++ case ORM_FBO: ++ device->offscreenBuffer = GL_COLOR_ATTACHMENT0; ++ break; ++ ++ case ORM_BACKBUFFER: ++ { ++ if (context_get_current()->aux_buffers > 0) ++ { ++ TRACE("Using auxiliary buffer for offscreen rendering\n"); ++ device->offscreenBuffer = GL_AUX0; ++ } ++ else ++ { ++ TRACE("Using back buffer for offscreen rendering\n"); ++ device->offscreenBuffer = GL_BACK; ++ } ++ } ++ } ++ + TRACE("All defaults now set up, leaving 3D init.\n"); + + context_release(context); +diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c +index ee6588e..bd6be49 100644 +--- a/dlls/wined3d/surface.c ++++ b/dlls/wined3d/surface.c +@@ -2435,7 +2435,7 @@ static void read_from_framebuffer(struct wined3d_surface *surface, + /* Mapping the primary render target which is not on a swapchain. + * Read from the back buffer. */ + TRACE("Mapping offscreen render target.\n"); +- gl_info->gl_ops.gl.p_glReadBuffer(context_get_offscreen_gl_buffer(context)); ++ gl_info->gl_ops.gl.p_glReadBuffer(device->offscreenBuffer); + srcIsUpsideDown = TRUE; + } + else +@@ -2541,7 +2541,7 @@ void surface_load_fb_texture(struct wined3d_surface *surface, BOOL srgb, struct + TRACE("Reading back offscreen render target %p.\n", surface); + + if (wined3d_resource_is_offscreen(&surface->container->resource)) +- gl_info->gl_ops.gl.p_glReadBuffer(context_get_offscreen_gl_buffer(context)); ++ gl_info->gl_ops.gl.p_glReadBuffer(device->offscreenBuffer); + else + gl_info->gl_ops.gl.p_glReadBuffer(surface_get_gl_buffer(surface)); + checkGLcall("glReadBuffer"); +@@ -2646,7 +2646,7 @@ static void fb_copy_to_texture_direct(struct wined3d_surface *dst_surface, struc + { + TRACE("Reading from an offscreen target\n"); + upsidedown = !upsidedown; +- gl_info->gl_ops.gl.p_glReadBuffer(context_get_offscreen_gl_buffer(context)); ++ gl_info->gl_ops.gl.p_glReadBuffer(device->offscreenBuffer); + } + else + { +@@ -2735,7 +2735,6 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st + const struct wined3d_gl_info *gl_info; + struct wined3d_context *context; + GLenum drawBuffer = GL_BACK; +- GLenum offscreen_buffer; + GLenum texture_target; + BOOL noBackBufferBackup; + BOOL src_offscreen; +@@ -2749,8 +2748,6 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st + context_apply_blit_state(context, device); + wined3d_texture_load(dst_surface->container, context, FALSE); + +- offscreen_buffer = context_get_offscreen_gl_buffer(context); +- + src_offscreen = wined3d_resource_is_offscreen(&src_surface->container->resource); + noBackBufferBackup = src_offscreen && wined3d_settings.offscreen_rendering_mode == ORM_FBO; + if (!noBackBufferBackup && !src_surface->container->texture_rgb.name) +@@ -2767,7 +2764,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st + /* Got more than one aux buffer? Use the 2nd aux buffer */ + drawBuffer = GL_AUX1; + } +- else if ((!src_offscreen || offscreen_buffer == GL_BACK) && context->aux_buffers >= 1) ++ else if ((!src_offscreen || device->offscreenBuffer == GL_BACK) && context->aux_buffers >= 1) + { + /* Only one aux buffer, but it isn't used (Onscreen rendering, or non-aux orm)? Use it! */ + drawBuffer = GL_AUX0; +@@ -2808,7 +2805,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st + { + TRACE("Reading from an offscreen target\n"); + upsidedown = !upsidedown; +- gl_info->gl_ops.gl.p_glReadBuffer(offscreen_buffer); ++ gl_info->gl_ops.gl.p_glReadBuffer(device->offscreenBuffer); + } + else + { +diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h +index 409ab36..eef58a3 100644 +--- a/dlls/wined3d/wined3d_private.h ++++ b/dlls/wined3d/wined3d_private.h +@@ -1507,7 +1507,6 @@ void context_destroy(struct wined3d_device *device, struct wined3d_context *cont + void context_free_event_query(struct wined3d_event_query *query) DECLSPEC_HIDDEN; + void context_free_occlusion_query(struct wined3d_occlusion_query *query) DECLSPEC_HIDDEN; + struct wined3d_context *context_get_current(void) DECLSPEC_HIDDEN; +-GLenum context_get_offscreen_gl_buffer(const struct wined3d_context *context) DECLSPEC_HIDDEN; + DWORD context_get_tls_idx(void) DECLSPEC_HIDDEN; + void context_gl_resource_released(struct wined3d_device *device, + GLuint name, BOOL rb_namespace) DECLSPEC_HIDDEN; +@@ -2142,6 +2141,9 @@ struct wined3d_device + LONG style; + LONG exStyle; + ++ /* X and GL Information */ ++ GLenum offscreenBuffer; ++ + const struct wined3d_shader_backend_ops *shader_backend; + void *shader_priv; + void *fragment_priv; +-- +2.7.1 + diff --git a/patches/wined3d-CSMT_Main/0001-Revert-wined3d-Introduce-wined3d_texture_check_block.patch b/patches/wined3d-CSMT_Main/0002-Revert-wined3d-Introduce-wined3d_texture_check_block.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0001-Revert-wined3d-Introduce-wined3d_texture_check_block.patch rename to patches/wined3d-CSMT_Main/0002-Revert-wined3d-Introduce-wined3d_texture_check_block.patch diff --git a/patches/wined3d-CSMT_Main/0002-Revert-wined3d-Introduce-wined3d_texture_get_pitch.patch b/patches/wined3d-CSMT_Main/0003-Revert-wined3d-Introduce-wined3d_texture_get_pitch.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0002-Revert-wined3d-Introduce-wined3d_texture_get_pitch.patch rename to patches/wined3d-CSMT_Main/0003-Revert-wined3d-Introduce-wined3d_texture_get_pitch.patch diff --git a/patches/wined3d-CSMT_Main/0003-Revert-wined3d-Use-wined3d_format_calculate_pitch-in.patch b/patches/wined3d-CSMT_Main/0004-Revert-wined3d-Use-wined3d_format_calculate_pitch-in.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0003-Revert-wined3d-Use-wined3d_format_calculate_pitch-in.patch rename to patches/wined3d-CSMT_Main/0004-Revert-wined3d-Use-wined3d_format_calculate_pitch-in.patch diff --git a/patches/wined3d-CSMT_Main/0004-Revert-wined3d-Handle-slice-pitch-and-alignment-as-w.patch b/patches/wined3d-CSMT_Main/0005-Revert-wined3d-Handle-slice-pitch-and-alignment-as-w.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0004-Revert-wined3d-Handle-slice-pitch-and-alignment-as-w.patch rename to patches/wined3d-CSMT_Main/0005-Revert-wined3d-Handle-slice-pitch-and-alignment-as-w.patch diff --git a/patches/wined3d-CSMT_Main/0005-Revert-wined3d-Store-custom-pitches-in-the-texture-i.patch b/patches/wined3d-CSMT_Main/0006-Revert-wined3d-Store-custom-pitches-in-the-texture-i.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0005-Revert-wined3d-Store-custom-pitches-in-the-texture-i.patch rename to patches/wined3d-CSMT_Main/0006-Revert-wined3d-Store-custom-pitches-in-the-texture-i.patch diff --git a/patches/wined3d-CSMT_Main/0006-Revert-wined3d-Store-the-user_memory-pointer-in-the-.patch b/patches/wined3d-CSMT_Main/0007-Revert-wined3d-Store-the-user_memory-pointer-in-the-.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0006-Revert-wined3d-Store-the-user_memory-pointer-in-the-.patch rename to patches/wined3d-CSMT_Main/0007-Revert-wined3d-Store-the-user_memory-pointer-in-the-.patch diff --git a/patches/wined3d-CSMT_Main/0007-wined3d-Merge-get_pitch-functions.patch b/patches/wined3d-CSMT_Main/0008-wined3d-Merge-get_pitch-functions.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0007-wined3d-Merge-get_pitch-functions.patch rename to patches/wined3d-CSMT_Main/0008-wined3d-Merge-get_pitch-functions.patch diff --git a/patches/wined3d-CSMT_Main/0008-wined3d-Pass-a-context-to-surface_load_location.patch b/patches/wined3d-CSMT_Main/0009-wined3d-Pass-a-context-to-surface_load_location.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0008-wined3d-Pass-a-context-to-surface_load_location.patch rename to patches/wined3d-CSMT_Main/0009-wined3d-Pass-a-context-to-surface_load_location.patch diff --git a/patches/wined3d-CSMT_Main/0009-wined3d-Make-surface_load_location-return-nothing.patch b/patches/wined3d-CSMT_Main/0010-wined3d-Make-surface_load_location-return-nothing.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0009-wined3d-Make-surface_load_location-return-nothing.patch rename to patches/wined3d-CSMT_Main/0010-wined3d-Make-surface_load_location-return-nothing.patch diff --git a/patches/wined3d-CSMT_Main/0010-wined3d-Store-volume-locations-in-the-resource.patch b/patches/wined3d-CSMT_Main/0011-wined3d-Store-volume-locations-in-the-resource.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0010-wined3d-Store-volume-locations-in-the-resource.patch rename to patches/wined3d-CSMT_Main/0011-wined3d-Store-volume-locations-in-the-resource.patch diff --git a/patches/wined3d-CSMT_Main/0011-wined3d-Move-validate_location-to-resource.c.patch b/patches/wined3d-CSMT_Main/0012-wined3d-Move-validate_location-to-resource.c.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0011-wined3d-Move-validate_location-to-resource.c.patch rename to patches/wined3d-CSMT_Main/0012-wined3d-Move-validate_location-to-resource.c.patch diff --git a/patches/wined3d-CSMT_Main/0012-wined3d-Move-surface-locations-into-the-resource.patch b/patches/wined3d-CSMT_Main/0013-wined3d-Move-surface-locations-into-the-resource.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0012-wined3d-Move-surface-locations-into-the-resource.patch rename to patches/wined3d-CSMT_Main/0013-wined3d-Move-surface-locations-into-the-resource.patch diff --git a/patches/wined3d-CSMT_Main/0013-wined3d-Remove-surface_validate_location.patch b/patches/wined3d-CSMT_Main/0014-wined3d-Remove-surface_validate_location.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0013-wined3d-Remove-surface_validate_location.patch rename to patches/wined3d-CSMT_Main/0014-wined3d-Remove-surface_validate_location.patch diff --git a/patches/wined3d-CSMT_Main/0014-wined3d-Move-invalidate_location-to-resource.c.patch b/patches/wined3d-CSMT_Main/0015-wined3d-Move-invalidate_location-to-resource.c.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0014-wined3d-Move-invalidate_location-to-resource.c.patch rename to patches/wined3d-CSMT_Main/0015-wined3d-Move-invalidate_location-to-resource.c.patch diff --git a/patches/wined3d-CSMT_Main/0015-wined3d-Invalidate-containers-via-callback.patch b/patches/wined3d-CSMT_Main/0016-wined3d-Invalidate-containers-via-callback.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0015-wined3d-Invalidate-containers-via-callback.patch rename to patches/wined3d-CSMT_Main/0016-wined3d-Invalidate-containers-via-callback.patch diff --git a/patches/wined3d-CSMT_Main/0016-wined3d-Remove-surface_invalidate_location.patch b/patches/wined3d-CSMT_Main/0017-wined3d-Remove-surface_invalidate_location.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0016-wined3d-Remove-surface_invalidate_location.patch rename to patches/wined3d-CSMT_Main/0017-wined3d-Remove-surface_invalidate_location.patch diff --git a/patches/wined3d-CSMT_Main/0017-wined3d-Move-bitmap_data-and-user_memory-into-the-re.patch b/patches/wined3d-CSMT_Main/0018-wined3d-Move-bitmap_data-and-user_memory-into-the-re.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0017-wined3d-Move-bitmap_data-and-user_memory-into-the-re.patch rename to patches/wined3d-CSMT_Main/0018-wined3d-Move-bitmap_data-and-user_memory-into-the-re.patch diff --git a/patches/wined3d-CSMT_Main/0018-wined3d-Move-load_location-into-the-resource.patch b/patches/wined3d-CSMT_Main/0019-wined3d-Move-load_location-into-the-resource.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0018-wined3d-Move-load_location-into-the-resource.patch rename to patches/wined3d-CSMT_Main/0019-wined3d-Move-load_location-into-the-resource.patch diff --git a/patches/wined3d-CSMT_Main/0019-wined3d-Replace-surface_load_location-with-resource_.patch b/patches/wined3d-CSMT_Main/0020-wined3d-Replace-surface_load_location-with-resource_.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0019-wined3d-Replace-surface_load_location-with-resource_.patch rename to patches/wined3d-CSMT_Main/0020-wined3d-Replace-surface_load_location-with-resource_.patch diff --git a/patches/wined3d-CSMT_Main/0020-wined3d-Introduce-helper-functions-for-mapping-volum.patch b/patches/wined3d-CSMT_Main/0021-wined3d-Introduce-helper-functions-for-mapping-volum.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0020-wined3d-Introduce-helper-functions-for-mapping-volum.patch rename to patches/wined3d-CSMT_Main/0021-wined3d-Introduce-helper-functions-for-mapping-volum.patch diff --git a/patches/wined3d-CSMT_Main/0021-wined3d-Move-volume-PBO-infrastructure-into-the-reso.patch b/patches/wined3d-CSMT_Main/0022-wined3d-Move-volume-PBO-infrastructure-into-the-reso.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0021-wined3d-Move-volume-PBO-infrastructure-into-the-reso.patch rename to patches/wined3d-CSMT_Main/0022-wined3d-Move-volume-PBO-infrastructure-into-the-reso.patch diff --git a/patches/wined3d-CSMT_Main/0022-wined3d-Remove-surface-pbo.patch b/patches/wined3d-CSMT_Main/0023-wined3d-Remove-surface-pbo.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0022-wined3d-Remove-surface-pbo.patch rename to patches/wined3d-CSMT_Main/0023-wined3d-Remove-surface-pbo.patch diff --git a/patches/wined3d-CSMT_Main/0023-wined3d-Use-resource-buffer-mapping-facilities-in-su.patch b/patches/wined3d-CSMT_Main/0024-wined3d-Use-resource-buffer-mapping-facilities-in-su.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0023-wined3d-Use-resource-buffer-mapping-facilities-in-su.patch rename to patches/wined3d-CSMT_Main/0024-wined3d-Use-resource-buffer-mapping-facilities-in-su.patch diff --git a/patches/wined3d-CSMT_Main/0024-wined3d-Move-buffer-creation-into-the-resource.patch b/patches/wined3d-CSMT_Main/0025-wined3d-Move-buffer-creation-into-the-resource.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0024-wined3d-Move-buffer-creation-into-the-resource.patch rename to patches/wined3d-CSMT_Main/0025-wined3d-Move-buffer-creation-into-the-resource.patch diff --git a/patches/wined3d-CSMT_Main/0025-wined3d-Handle-WINED3D_LOCATION_DISCARDED-in-surface.patch b/patches/wined3d-CSMT_Main/0026-wined3d-Handle-WINED3D_LOCATION_DISCARDED-in-surface.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0025-wined3d-Handle-WINED3D_LOCATION_DISCARDED-in-surface.patch rename to patches/wined3d-CSMT_Main/0026-wined3d-Handle-WINED3D_LOCATION_DISCARDED-in-surface.patch diff --git a/patches/wined3d-CSMT_Main/0026-wined3d-Handle-LOCATION_DISCARDED-in-surface_load_dr.patch b/patches/wined3d-CSMT_Main/0027-wined3d-Handle-LOCATION_DISCARDED-in-surface_load_dr.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0026-wined3d-Handle-LOCATION_DISCARDED-in-surface_load_dr.patch rename to patches/wined3d-CSMT_Main/0027-wined3d-Handle-LOCATION_DISCARDED-in-surface_load_dr.patch diff --git a/patches/wined3d-CSMT_Main/0027-wined3d-Handle-WINED3D_LOCATION_DISCARDED-for-sysmem.patch b/patches/wined3d-CSMT_Main/0028-wined3d-Handle-WINED3D_LOCATION_DISCARDED-for-sysmem.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0027-wined3d-Handle-WINED3D_LOCATION_DISCARDED-for-sysmem.patch rename to patches/wined3d-CSMT_Main/0028-wined3d-Handle-WINED3D_LOCATION_DISCARDED-for-sysmem.patch diff --git a/patches/wined3d-CSMT_Main/0028-wined3d-Discard-implicit-surfaces-on-unload.patch b/patches/wined3d-CSMT_Main/0029-wined3d-Discard-implicit-surfaces-on-unload.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0028-wined3d-Discard-implicit-surfaces-on-unload.patch rename to patches/wined3d-CSMT_Main/0029-wined3d-Discard-implicit-surfaces-on-unload.patch diff --git a/patches/wined3d-CSMT_Main/0029-wined3d-Don-t-try-to-flip-sysmem-copies-in-swapchain.patch b/patches/wined3d-CSMT_Main/0030-wined3d-Don-t-try-to-flip-sysmem-copies-in-swapchain.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0029-wined3d-Don-t-try-to-flip-sysmem-copies-in-swapchain.patch rename to patches/wined3d-CSMT_Main/0030-wined3d-Don-t-try-to-flip-sysmem-copies-in-swapchain.patch diff --git a/patches/wined3d-CSMT_Main/0030-wined3d-Discard-the-backbuffer-in-discard-presents.patch b/patches/wined3d-CSMT_Main/0031-wined3d-Discard-the-backbuffer-in-discard-presents.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0030-wined3d-Discard-the-backbuffer-in-discard-presents.patch rename to patches/wined3d-CSMT_Main/0031-wined3d-Discard-the-backbuffer-in-discard-presents.patch diff --git a/patches/wined3d-CSMT_Main/0031-wined3d-Introduce-a-function-to-retrieve-resource-me.patch b/patches/wined3d-CSMT_Main/0032-wined3d-Introduce-a-function-to-retrieve-resource-me.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0031-wined3d-Introduce-a-function-to-retrieve-resource-me.patch rename to patches/wined3d-CSMT_Main/0032-wined3d-Introduce-a-function-to-retrieve-resource-me.patch diff --git a/patches/wined3d-CSMT_Main/0032-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch b/patches/wined3d-CSMT_Main/0033-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0032-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch rename to patches/wined3d-CSMT_Main/0033-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch diff --git a/patches/wined3d-CSMT_Main/0033-wined3d-Move-check_block_align-to-resource.c.patch b/patches/wined3d-CSMT_Main/0034-wined3d-Move-check_block_align-to-resource.c.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0033-wined3d-Move-check_block_align-to-resource.c.patch rename to patches/wined3d-CSMT_Main/0034-wined3d-Move-check_block_align-to-resource.c.patch diff --git a/patches/wined3d-CSMT_Main/0034-wined3d-Replace-surface-alloc-functions-with-resourc.patch b/patches/wined3d-CSMT_Main/0035-wined3d-Replace-surface-alloc-functions-with-resourc.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0034-wined3d-Replace-surface-alloc-functions-with-resourc.patch rename to patches/wined3d-CSMT_Main/0035-wined3d-Replace-surface-alloc-functions-with-resourc.patch diff --git a/patches/wined3d-CSMT_Main/0035-wined3d-Don-t-delete-the-buffer-in-surface_cleanup.patch b/patches/wined3d-CSMT_Main/0036-wined3d-Don-t-delete-the-buffer-in-surface_cleanup.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0035-wined3d-Don-t-delete-the-buffer-in-surface_cleanup.patch rename to patches/wined3d-CSMT_Main/0036-wined3d-Don-t-delete-the-buffer-in-surface_cleanup.patch diff --git a/patches/wined3d-CSMT_Main/0036-wined3d-Use-resource-facilities-to-destroy-PBOs.patch b/patches/wined3d-CSMT_Main/0037-wined3d-Use-resource-facilities-to-destroy-PBOs.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0036-wined3d-Use-resource-facilities-to-destroy-PBOs.patch rename to patches/wined3d-CSMT_Main/0037-wined3d-Use-resource-facilities-to-destroy-PBOs.patch diff --git a/patches/wined3d-CSMT_Main/0037-wined3d-Move-simple-location-copying-to-the-resource.patch b/patches/wined3d-CSMT_Main/0038-wined3d-Move-simple-location-copying-to-the-resource.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0037-wined3d-Move-simple-location-copying-to-the-resource.patch rename to patches/wined3d-CSMT_Main/0038-wined3d-Move-simple-location-copying-to-the-resource.patch diff --git a/patches/wined3d-CSMT_Main/0038-wined3d-Move-most-of-volume_map-to-resource.c.patch b/patches/wined3d-CSMT_Main/0039-wined3d-Move-most-of-volume_map-to-resource.c.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0038-wined3d-Move-most-of-volume_map-to-resource.c.patch rename to patches/wined3d-CSMT_Main/0039-wined3d-Move-most-of-volume_map-to-resource.c.patch diff --git a/patches/wined3d-CSMT_Main/0040-wined3d-Don-t-call-the-public-map-function-in-surfac.patch b/patches/wined3d-CSMT_Main/0040-wined3d-Don-t-call-the-public-map-function-in-surfac.patch deleted file mode 100644 index 9514536a..00000000 --- a/patches/wined3d-CSMT_Main/0040-wined3d-Don-t-call-the-public-map-function-in-surfac.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 89a2597787017d7bc966c2a146fa4c4fc59e9ebb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Stefan=20D=C3=B6singer?= -Date: Mon, 23 Sep 2013 23:58:41 +0200 -Subject: wined3d: Don't call the public map function in - surface_convert_format. - -TODO: Creating a helper surface and releasing it won't work with the CS. -surface_cpu_blt will be called via the CS, so it can't call external -methods that enqueue commands in the stream. ---- - dlls/wined3d/surface.c | 57 +++++++++++++++++++++++++++++++++----------------- - 1 file changed, 38 insertions(+), 19 deletions(-) - -diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index 303a0dc..045ede5 100644 ---- a/dlls/wined3d/surface.c -+++ b/dlls/wined3d/surface.c -@@ -2253,11 +2253,14 @@ static inline const struct d3dfmt_converter_desc *find_converter(enum wined3d_fo - - static struct wined3d_texture *surface_convert_format(struct wined3d_surface *source, enum wined3d_format_id to_fmt) - { -- struct wined3d_map_desc src_map, dst_map; -+ void *dst_data = NULL, *src_data = NULL; -+ UINT src_row_pitch, src_slice_pitch, dst_row_pitch, dst_slice_pitch; - const struct d3dfmt_converter_desc *conv; - struct wined3d_texture *ret = NULL; - struct wined3d_resource_desc desc; - struct wined3d_surface *dst; -+ struct wined3d_context *context = NULL; -+ struct wined3d_device *device = source->resource.device; - - conv = find_converter(source->resource.format->id, to_fmt); - if (!conv) -@@ -2281,30 +2284,46 @@ static struct wined3d_texture *surface_convert_format(struct wined3d_surface *so - } - dst = surface_from_resource(wined3d_texture_get_sub_resource(ret, 0)); - -- memset(&src_map, 0, sizeof(src_map)); -- memset(&dst_map, 0, sizeof(dst_map)); -+ wined3d_resource_get_pitch(&source->resource, &src_row_pitch, &src_slice_pitch); -+ wined3d_resource_get_pitch(&ret->resource, &dst_row_pitch, &dst_slice_pitch); - -- if (FAILED(wined3d_surface_map(source, &src_map, NULL, WINED3D_MAP_READONLY))) -- { -- ERR("Failed to lock the source surface.\n"); -- wined3d_texture_decref(ret); -- return NULL; -- } -- if (FAILED(wined3d_surface_map(dst, &dst_map, NULL, 0))) -- { -- ERR("Failed to lock the destination surface.\n"); -- wined3d_surface_unmap(source); -- wined3d_texture_decref(ret); -- return NULL; -- } -+ if (device->d3d_initialized) -+ context = context_acquire(device, NULL); -+ -+ wined3d_resource_load_location(&source->resource, context, source->resource.map_binding); -+ src_data = wined3d_resource_get_map_ptr(&source->resource, context, WINED3D_MAP_READONLY); -+ if (!src_data) -+ goto error; - -- conv->convert(src_map.data, dst_map.data, src_map.row_pitch, dst_map.row_pitch, -+ if (!wined3d_resource_prepare_map_memory(&dst->resource, context)) -+ goto error; -+ dst_data = wined3d_resource_get_map_ptr(&dst->resource, context, 0); -+ if (!dst_data) -+ goto error; -+ -+ conv->convert(src_data, dst_data, src_row_pitch, dst_row_pitch, - source->resource.width, source->resource.height); - -- wined3d_surface_unmap(dst); -- wined3d_surface_unmap(source); -+ wined3d_resource_release_map_ptr(&dst->resource, context); -+ wined3d_resource_release_map_ptr(&source->resource, context); -+ -+ if (context) -+ context_release(context); - - return ret; -+ -+error: -+ ERR("Surface conversion failed.\n"); -+ -+ if (src_data) -+ wined3d_resource_release_map_ptr(&source->resource, context); -+ if (dst_data) -+ wined3d_resource_release_map_ptr(&ret->resource, context); -+ if (ret) -+ wined3d_texture_decref(ret); -+ if (context) -+ context_release(context); -+ return NULL; - } - - static HRESULT _Blt_ColorFill(BYTE *buf, unsigned int width, unsigned int height, --- -2.1.3 - diff --git a/patches/wined3d-CSMT_Main/0039-wined3d-Use-resource_map-for-surface_map.patch b/patches/wined3d-CSMT_Main/0040-wined3d-Use-resource_map-for-surface_map.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0039-wined3d-Use-resource_map-for-surface_map.patch rename to patches/wined3d-CSMT_Main/0040-wined3d-Use-resource_map-for-surface_map.patch diff --git a/patches/wined3d-CSMT_Main/0041-wined3d-Don-t-call-the-public-map-function-in-surfac.patch b/patches/wined3d-CSMT_Main/0041-wined3d-Don-t-call-the-public-map-function-in-surfac.patch index 8ecb071d..9514536a 100644 --- a/patches/wined3d-CSMT_Main/0041-wined3d-Don-t-call-the-public-map-function-in-surfac.patch +++ b/patches/wined3d-CSMT_Main/0041-wined3d-Don-t-call-the-public-map-function-in-surfac.patch @@ -1,282 +1,101 @@ -From 47ef978f9df066194e25874a30f54033105e520b Mon Sep 17 00:00:00 2001 +From 89a2597787017d7bc966c2a146fa4c4fc59e9ebb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= -Date: Tue, 24 Sep 2013 00:31:39 +0200 -Subject: wined3d: Don't call the public map function in surface_cpu_blt. +Date: Mon, 23 Sep 2013 23:58:41 +0200 +Subject: wined3d: Don't call the public map function in + surface_convert_format. +TODO: Creating a helper surface and releasing it won't work with the CS. +surface_cpu_blt will be called via the CS, so it can't call external +methods that enqueue commands in the stream. --- - dlls/wined3d/surface.c | 108 ++++++++++++++++++++++++++++++++----------------- - 1 file changed, 72 insertions(+), 36 deletions(-) + dlls/wined3d/surface.c | 57 +++++++++++++++++++++++++++++++++----------------- + 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c -index ca15221..eb1397e 100644 +index 303a0dc..045ede5 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c -@@ -4067,26 +4067,40 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * - struct wined3d_surface *src_surface, const RECT *src_rect, DWORD flags, - const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter) +@@ -2253,11 +2253,14 @@ static inline const struct d3dfmt_converter_desc *find_converter(enum wined3d_fo + + static struct wined3d_texture *surface_convert_format(struct wined3d_surface *source, enum wined3d_format_id to_fmt) { -- const struct wined3d_box dst_box = {dst_rect->left, dst_rect->top, dst_rect->right, dst_rect->bottom, 0, 1}; - int bpp, srcheight, srcwidth, dstheight, dstwidth, width; - const struct wined3d_format *src_format, *dst_format; - unsigned int src_fmt_flags, dst_fmt_flags; - struct wined3d_texture *src_texture = NULL; -- struct wined3d_map_desc dst_map, src_map; -+ void *src_data = NULL, *dst_data = NULL; +- struct wined3d_map_desc src_map, dst_map; ++ void *dst_data = NULL, *src_data = NULL; + UINT src_row_pitch, src_slice_pitch, dst_row_pitch, dst_slice_pitch; - const BYTE *sbase = NULL; - HRESULT hr = WINED3D_OK; - const BYTE *sbuf; - BYTE *dbuf; - int x, y; -+ struct wined3d_device *device = dst_surface->resource.device; + const struct d3dfmt_converter_desc *conv; + struct wined3d_texture *ret = NULL; + struct wined3d_resource_desc desc; + struct wined3d_surface *dst; + struct wined3d_context *context = NULL; ++ struct wined3d_device *device = source->resource.device; - TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n", - dst_surface, wine_dbgstr_rect(dst_rect), src_surface, wine_dbgstr_rect(src_rect), - flags, fx, debug_d3dtexturefiltertype(filter)); + conv = find_converter(source->resource.format->id, to_fmt); + if (!conv) +@@ -2281,30 +2284,46 @@ static struct wined3d_texture *surface_convert_format(struct wined3d_surface *so + } + dst = surface_from_resource(wined3d_texture_get_sub_resource(ret, 0)); +- memset(&src_map, 0, sizeof(src_map)); +- memset(&dst_map, 0, sizeof(dst_map)); ++ wined3d_resource_get_pitch(&source->resource, &src_row_pitch, &src_slice_pitch); ++ wined3d_resource_get_pitch(&ret->resource, &dst_row_pitch, &dst_slice_pitch); + +- if (FAILED(wined3d_surface_map(source, &src_map, NULL, WINED3D_MAP_READONLY))) +- { +- ERR("Failed to lock the source surface.\n"); +- wined3d_texture_decref(ret); +- return NULL; +- } +- if (FAILED(wined3d_surface_map(dst, &dst_map, NULL, 0))) +- { +- ERR("Failed to lock the destination surface.\n"); +- wined3d_surface_unmap(source); +- wined3d_texture_decref(ret); +- return NULL; +- } + if (device->d3d_initialized) + context = context_acquire(device, NULL); + -+ if (!wined3d_resource_prepare_map_memory(&dst_surface->resource, context)) -+ { -+ hr = E_OUTOFMEMORY; ++ wined3d_resource_load_location(&source->resource, context, source->resource.map_binding); ++ src_data = wined3d_resource_get_map_ptr(&source->resource, context, WINED3D_MAP_READONLY); ++ if (!src_data) ++ goto error; + +- conv->convert(src_map.data, dst_map.data, src_map.row_pitch, dst_map.row_pitch, ++ if (!wined3d_resource_prepare_map_memory(&dst->resource, context)) ++ goto error; ++ dst_data = wined3d_resource_get_map_ptr(&dst->resource, context, 0); ++ if (!dst_data) + goto error; -+ } -+ wined3d_resource_load_location(&dst_surface->resource, context, dst_surface->resource.map_binding); + - if (src_surface == dst_surface) - { -- wined3d_surface_map(dst_surface, &dst_map, NULL, 0); -- src_map = dst_map; -+ dst_data = wined3d_resource_get_map_ptr(&dst_surface->resource, context, 0); -+ wined3d_resource_get_pitch(&dst_surface->resource, &dst_row_pitch, &dst_slice_pitch); -+ src_data = dst_data; -+ src_row_pitch = dst_row_pitch; - src_format = dst_surface->resource.format; - dst_format = src_format; - dst_fmt_flags = dst_surface->container->resource.format_flags; -@@ -4098,6 +4112,12 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * - dst_fmt_flags = dst_surface->container->resource.format_flags; - if (src_surface) - { -+ if (!wined3d_resource_prepare_map_memory(&src_surface->resource, context)) -+ { -+ hr = E_OUTOFMEMORY; -+ goto error; -+ } ++ conv->convert(src_data, dst_data, src_row_pitch, dst_row_pitch, + source->resource.width, source->resource.height); + +- wined3d_surface_unmap(dst); +- wined3d_surface_unmap(source); ++ wined3d_resource_release_map_ptr(&dst->resource, context); ++ wined3d_resource_release_map_ptr(&source->resource, context); + - if (dst_surface->resource.format->id != src_surface->resource.format->id) - { - if (!(src_texture = surface_convert_format(src_surface, dst_format->id))) -@@ -4108,7 +4128,9 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * - } - src_surface = surface_from_resource(wined3d_texture_get_sub_resource(src_texture, 0)); - } -- wined3d_surface_map(src_surface, &src_map, NULL, WINED3D_MAP_READONLY); -+ wined3d_resource_load_location(&src_surface->resource, context, src_surface->resource.map_binding); -+ wined3d_resource_get_pitch(&src_surface->resource, &src_row_pitch, &src_slice_pitch); -+ src_data = wined3d_resource_get_map_ptr(&src_surface->resource, context, 0); - src_format = src_surface->resource.format; - src_fmt_flags = src_surface->container->resource.format_flags; - } -@@ -4118,7 +4140,8 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * - src_fmt_flags = dst_fmt_flags; - } - -- wined3d_surface_map(dst_surface, &dst_map, &dst_box, 0); -+ wined3d_resource_get_pitch(&dst_surface->resource, &dst_row_pitch, &dst_slice_pitch); -+ dst_data = wined3d_resource_get_map_ptr(&dst_surface->resource, context, 0); - } - - bpp = dst_surface->resource.format->byte_count; -@@ -4129,15 +4152,12 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * - width = (dst_rect->right - dst_rect->left) * bpp; - - if (src_surface) -- sbase = (BYTE *)src_map.data -- + ((src_rect->top / src_format->block_height) * src_map.row_pitch) -+ sbase = (BYTE *)src_data -+ + ((src_rect->top / src_format->block_height) * src_row_pitch) - + ((src_rect->left / src_format->block_width) * src_format->block_byte_count); -- if (src_surface != dst_surface) -- dbuf = dst_map.data; -- else -- dbuf = (BYTE *)dst_map.data -- + ((dst_rect->top / dst_format->block_height) * dst_map.row_pitch) -- + ((dst_rect->left / dst_format->block_width) * dst_format->block_byte_count); -+ dbuf = (BYTE *)dst_data -+ + ((dst_rect->top / dst_format->block_height) * dst_row_pitch) -+ + ((dst_rect->left / dst_format->block_width) * dst_format->block_byte_count); - - if (src_fmt_flags & dst_fmt_flags & WINED3DFMT_FLAG_BLOCKS) - { -@@ -4172,7 +4192,7 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * - } - - hr = surface_cpu_blt_compressed(sbase, dbuf, -- src_map.row_pitch, dst_map.row_pitch, dstwidth, dstheight, -+ src_row_pitch, dst_row_pitch, dstwidth, dstheight, - src_format, flags, fx); - goto release; - } -@@ -4180,7 +4200,7 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * - /* First, all the 'source-less' blits */ - if (flags & WINED3D_BLT_COLOR_FILL) - { -- hr = _Blt_ColorFill(dbuf, dstwidth, dstheight, bpp, dst_map.row_pitch, fx->fill_color); -+ hr = _Blt_ColorFill(dbuf, dstwidth, dstheight, bpp, dst_row_pitch, fx->fill_color); - flags &= ~WINED3D_BLT_COLOR_FILL; - } - -@@ -4224,19 +4244,19 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * - for (y = 0; y < dstheight; ++y) - { - memcpy(dbuf, sbuf, width); -- sbuf += src_map.row_pitch; -- dbuf += dst_map.row_pitch; -+ sbuf += src_row_pitch; -+ dbuf += dst_row_pitch; - } - } - else if (dst_rect->top > src_rect->top) - { - /* Copy from bottom upwards. */ -- sbuf += src_map.row_pitch * dstheight; -- dbuf += dst_map.row_pitch * dstheight; -+ sbuf += src_row_pitch * dstheight; -+ dbuf += dst_row_pitch * dstheight; - for (y = 0; y < dstheight; ++y) - { -- sbuf -= src_map.row_pitch; -- dbuf -= dst_map.row_pitch; -+ sbuf -= src_row_pitch; -+ dbuf -= dst_row_pitch; - memcpy(dbuf, sbuf, width); - } - } -@@ -4246,8 +4266,8 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * - for (y = 0; y < dstheight; ++y) - { - memmove(dbuf, sbuf, width); -- sbuf += src_map.row_pitch; -- dbuf += dst_map.row_pitch; -+ sbuf += src_row_pitch; -+ dbuf += dst_row_pitch; - } - } - } -@@ -4256,9 +4276,9 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * - /* Stretching in y direction only. */ - for (y = sy = 0; y < dstheight; ++y, sy += yinc) - { -- sbuf = sbase + (sy >> 16) * src_map.row_pitch; -+ sbuf = sbase + (sy >> 16) * src_row_pitch; - memcpy(dbuf, sbuf, width); -- dbuf += dst_map.row_pitch; -+ dbuf += dst_row_pitch; - } - } - } -@@ -4268,13 +4288,13 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * - int last_sy = -1; - for (y = sy = 0; y < dstheight; ++y, sy += yinc) - { -- sbuf = sbase + (sy >> 16) * src_map.row_pitch; -+ sbuf = sbase + (sy >> 16) * src_row_pitch; - - if ((sy >> 16) == (last_sy >> 16)) - { - /* This source row is the same as last source row - - * Copy the already stretched row. */ -- memcpy(dbuf, dbuf - dst_map.row_pitch, width); -+ memcpy(dbuf, dbuf - dst_row_pitch, width); - } - else - { -@@ -4321,14 +4341,14 @@ do { \ - } - #undef STRETCH_ROW - } -- dbuf += dst_map.row_pitch; -+ dbuf += dst_row_pitch; - last_sy = sy; - } - } - } - else - { -- LONG dstyinc = dst_map.row_pitch, dstxinc = bpp; -+ LONG dstyinc = dst_row_pitch, dstxinc = bpp; - DWORD keylow = 0xffffffff, keyhigh = 0, keymask = 0xffffffff; - DWORD destkeylow = 0x0, destkeyhigh = 0xffffffff, destkeymask = 0xffffffff; - if (flags & (WINED3D_BLT_SRC_CKEY | WINED3D_BLT_DST_CKEY -@@ -4380,7 +4400,7 @@ do { \ - LONG tmpxy; - dTopLeft = dbuf; - dTopRight = dbuf + ((dstwidth - 1) * bpp); -- dBottomLeft = dTopLeft + ((dstheight - 1) * dst_map.row_pitch); -+ dBottomLeft = dTopLeft + ((dstheight - 1) * dst_row_pitch); - dBottomRight = dBottomLeft + ((dstwidth - 1) * bpp); - - if (fx->fx & WINEDDBLTFX_ARITHSTRETCHY) -@@ -4463,7 +4483,7 @@ do { \ - type *d = (type *)dbuf, *dx, tmp; \ - for (y = sy = 0; y < dstheight; ++y, sy += yinc) \ - { \ -- s = (const type *)(sbase + (sy >> 16) * src_map.row_pitch); \ -+ s = (const type *)(sbase + (sy >> 16) * src_row_pitch); \ - dx = d; \ - for (x = sx = 0; x < dstwidth; ++x, sx += xinc) \ - { \ -@@ -4496,7 +4516,7 @@ do { \ - BYTE *d = dbuf, *dx; - for (y = sy = 0; y < dstheight; ++y, sy += yinc) - { -- sbuf = sbase + (sy >> 16) * src_map.row_pitch; -+ sbuf = sbase + (sy >> 16) * src_row_pitch; - dx = d; - for (x = sx = 0; x < dstwidth; ++x, sx+= xinc) - { -@@ -4527,6 +4547,10 @@ do { \ - } - } - -+ wined3d_resource_invalidate_location(&dst_surface->resource, ~dst_surface->resource.map_binding); -+ if (dst_surface->container) -+ wined3d_texture_set_dirty(dst_surface->container); -+ - error: - if (flags && FIXME_ON(d3d_surface)) - { -@@ -4534,12 +4558,24 @@ error: - } - - release: -- wined3d_surface_unmap(dst_surface); -- if (src_surface && src_surface != dst_surface) -- wined3d_surface_unmap(src_surface); -+ if (dst_data) -+ { -+ wined3d_resource_release_map_ptr(&dst_surface->resource, context); -+ -+ if (dst_surface->container->swapchain -+ && dst_surface->container == dst_surface->container->swapchain->front_buffer) -+ { -+ dst_surface->lockedRect = *dst_rect; -+ dst_surface->surface_ops->surface_frontbuffer_updated(dst_surface); -+ } -+ } -+ if (src_surface && src_surface != dst_surface && src_data) -+ wined3d_resource_release_map_ptr(&src_surface->resource, context); - /* Release the converted surface, if any. */ - if (src_texture) - wined3d_texture_decref(src_texture); + if (context) + context_release(context); - return hr; + return ret; ++ ++error: ++ ERR("Surface conversion failed.\n"); ++ ++ if (src_data) ++ wined3d_resource_release_map_ptr(&source->resource, context); ++ if (dst_data) ++ wined3d_resource_release_map_ptr(&ret->resource, context); ++ if (ret) ++ wined3d_texture_decref(ret); ++ if (context) ++ context_release(context); ++ return NULL; } + + static HRESULT _Blt_ColorFill(BYTE *buf, unsigned int width, unsigned int height, -- -2.7.1 +2.1.3 diff --git a/patches/wined3d-CSMT_Main/0042-wined3d-Don-t-call-the-public-map-function-in-surfac.patch b/patches/wined3d-CSMT_Main/0042-wined3d-Don-t-call-the-public-map-function-in-surfac.patch new file mode 100644 index 00000000..8ecb071d --- /dev/null +++ b/patches/wined3d-CSMT_Main/0042-wined3d-Don-t-call-the-public-map-function-in-surfac.patch @@ -0,0 +1,282 @@ +From 47ef978f9df066194e25874a30f54033105e520b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20D=C3=B6singer?= +Date: Tue, 24 Sep 2013 00:31:39 +0200 +Subject: wined3d: Don't call the public map function in surface_cpu_blt. + +--- + dlls/wined3d/surface.c | 108 ++++++++++++++++++++++++++++++++----------------- + 1 file changed, 72 insertions(+), 36 deletions(-) + +diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c +index ca15221..eb1397e 100644 +--- a/dlls/wined3d/surface.c ++++ b/dlls/wined3d/surface.c +@@ -4067,26 +4067,40 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * + struct wined3d_surface *src_surface, const RECT *src_rect, DWORD flags, + const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter) + { +- const struct wined3d_box dst_box = {dst_rect->left, dst_rect->top, dst_rect->right, dst_rect->bottom, 0, 1}; + int bpp, srcheight, srcwidth, dstheight, dstwidth, width; + const struct wined3d_format *src_format, *dst_format; + unsigned int src_fmt_flags, dst_fmt_flags; + struct wined3d_texture *src_texture = NULL; +- struct wined3d_map_desc dst_map, src_map; ++ void *src_data = NULL, *dst_data = NULL; ++ UINT src_row_pitch, src_slice_pitch, dst_row_pitch, dst_slice_pitch; + const BYTE *sbase = NULL; + HRESULT hr = WINED3D_OK; + const BYTE *sbuf; + BYTE *dbuf; + int x, y; ++ struct wined3d_device *device = dst_surface->resource.device; ++ struct wined3d_context *context = NULL; + + TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n", + dst_surface, wine_dbgstr_rect(dst_rect), src_surface, wine_dbgstr_rect(src_rect), + flags, fx, debug_d3dtexturefiltertype(filter)); + ++ if (device->d3d_initialized) ++ context = context_acquire(device, NULL); ++ ++ if (!wined3d_resource_prepare_map_memory(&dst_surface->resource, context)) ++ { ++ hr = E_OUTOFMEMORY; ++ goto error; ++ } ++ wined3d_resource_load_location(&dst_surface->resource, context, dst_surface->resource.map_binding); ++ + if (src_surface == dst_surface) + { +- wined3d_surface_map(dst_surface, &dst_map, NULL, 0); +- src_map = dst_map; ++ dst_data = wined3d_resource_get_map_ptr(&dst_surface->resource, context, 0); ++ wined3d_resource_get_pitch(&dst_surface->resource, &dst_row_pitch, &dst_slice_pitch); ++ src_data = dst_data; ++ src_row_pitch = dst_row_pitch; + src_format = dst_surface->resource.format; + dst_format = src_format; + dst_fmt_flags = dst_surface->container->resource.format_flags; +@@ -4098,6 +4112,12 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * + dst_fmt_flags = dst_surface->container->resource.format_flags; + if (src_surface) + { ++ if (!wined3d_resource_prepare_map_memory(&src_surface->resource, context)) ++ { ++ hr = E_OUTOFMEMORY; ++ goto error; ++ } ++ + if (dst_surface->resource.format->id != src_surface->resource.format->id) + { + if (!(src_texture = surface_convert_format(src_surface, dst_format->id))) +@@ -4108,7 +4128,9 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * + } + src_surface = surface_from_resource(wined3d_texture_get_sub_resource(src_texture, 0)); + } +- wined3d_surface_map(src_surface, &src_map, NULL, WINED3D_MAP_READONLY); ++ wined3d_resource_load_location(&src_surface->resource, context, src_surface->resource.map_binding); ++ wined3d_resource_get_pitch(&src_surface->resource, &src_row_pitch, &src_slice_pitch); ++ src_data = wined3d_resource_get_map_ptr(&src_surface->resource, context, 0); + src_format = src_surface->resource.format; + src_fmt_flags = src_surface->container->resource.format_flags; + } +@@ -4118,7 +4140,8 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * + src_fmt_flags = dst_fmt_flags; + } + +- wined3d_surface_map(dst_surface, &dst_map, &dst_box, 0); ++ wined3d_resource_get_pitch(&dst_surface->resource, &dst_row_pitch, &dst_slice_pitch); ++ dst_data = wined3d_resource_get_map_ptr(&dst_surface->resource, context, 0); + } + + bpp = dst_surface->resource.format->byte_count; +@@ -4129,15 +4152,12 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * + width = (dst_rect->right - dst_rect->left) * bpp; + + if (src_surface) +- sbase = (BYTE *)src_map.data +- + ((src_rect->top / src_format->block_height) * src_map.row_pitch) ++ sbase = (BYTE *)src_data ++ + ((src_rect->top / src_format->block_height) * src_row_pitch) + + ((src_rect->left / src_format->block_width) * src_format->block_byte_count); +- if (src_surface != dst_surface) +- dbuf = dst_map.data; +- else +- dbuf = (BYTE *)dst_map.data +- + ((dst_rect->top / dst_format->block_height) * dst_map.row_pitch) +- + ((dst_rect->left / dst_format->block_width) * dst_format->block_byte_count); ++ dbuf = (BYTE *)dst_data ++ + ((dst_rect->top / dst_format->block_height) * dst_row_pitch) ++ + ((dst_rect->left / dst_format->block_width) * dst_format->block_byte_count); + + if (src_fmt_flags & dst_fmt_flags & WINED3DFMT_FLAG_BLOCKS) + { +@@ -4172,7 +4192,7 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * + } + + hr = surface_cpu_blt_compressed(sbase, dbuf, +- src_map.row_pitch, dst_map.row_pitch, dstwidth, dstheight, ++ src_row_pitch, dst_row_pitch, dstwidth, dstheight, + src_format, flags, fx); + goto release; + } +@@ -4180,7 +4200,7 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * + /* First, all the 'source-less' blits */ + if (flags & WINED3D_BLT_COLOR_FILL) + { +- hr = _Blt_ColorFill(dbuf, dstwidth, dstheight, bpp, dst_map.row_pitch, fx->fill_color); ++ hr = _Blt_ColorFill(dbuf, dstwidth, dstheight, bpp, dst_row_pitch, fx->fill_color); + flags &= ~WINED3D_BLT_COLOR_FILL; + } + +@@ -4224,19 +4244,19 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * + for (y = 0; y < dstheight; ++y) + { + memcpy(dbuf, sbuf, width); +- sbuf += src_map.row_pitch; +- dbuf += dst_map.row_pitch; ++ sbuf += src_row_pitch; ++ dbuf += dst_row_pitch; + } + } + else if (dst_rect->top > src_rect->top) + { + /* Copy from bottom upwards. */ +- sbuf += src_map.row_pitch * dstheight; +- dbuf += dst_map.row_pitch * dstheight; ++ sbuf += src_row_pitch * dstheight; ++ dbuf += dst_row_pitch * dstheight; + for (y = 0; y < dstheight; ++y) + { +- sbuf -= src_map.row_pitch; +- dbuf -= dst_map.row_pitch; ++ sbuf -= src_row_pitch; ++ dbuf -= dst_row_pitch; + memcpy(dbuf, sbuf, width); + } + } +@@ -4246,8 +4266,8 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * + for (y = 0; y < dstheight; ++y) + { + memmove(dbuf, sbuf, width); +- sbuf += src_map.row_pitch; +- dbuf += dst_map.row_pitch; ++ sbuf += src_row_pitch; ++ dbuf += dst_row_pitch; + } + } + } +@@ -4256,9 +4276,9 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * + /* Stretching in y direction only. */ + for (y = sy = 0; y < dstheight; ++y, sy += yinc) + { +- sbuf = sbase + (sy >> 16) * src_map.row_pitch; ++ sbuf = sbase + (sy >> 16) * src_row_pitch; + memcpy(dbuf, sbuf, width); +- dbuf += dst_map.row_pitch; ++ dbuf += dst_row_pitch; + } + } + } +@@ -4268,13 +4288,13 @@ static HRESULT surface_cpu_blt(struct wined3d_surface *dst_surface, const RECT * + int last_sy = -1; + for (y = sy = 0; y < dstheight; ++y, sy += yinc) + { +- sbuf = sbase + (sy >> 16) * src_map.row_pitch; ++ sbuf = sbase + (sy >> 16) * src_row_pitch; + + if ((sy >> 16) == (last_sy >> 16)) + { + /* This source row is the same as last source row - + * Copy the already stretched row. */ +- memcpy(dbuf, dbuf - dst_map.row_pitch, width); ++ memcpy(dbuf, dbuf - dst_row_pitch, width); + } + else + { +@@ -4321,14 +4341,14 @@ do { \ + } + #undef STRETCH_ROW + } +- dbuf += dst_map.row_pitch; ++ dbuf += dst_row_pitch; + last_sy = sy; + } + } + } + else + { +- LONG dstyinc = dst_map.row_pitch, dstxinc = bpp; ++ LONG dstyinc = dst_row_pitch, dstxinc = bpp; + DWORD keylow = 0xffffffff, keyhigh = 0, keymask = 0xffffffff; + DWORD destkeylow = 0x0, destkeyhigh = 0xffffffff, destkeymask = 0xffffffff; + if (flags & (WINED3D_BLT_SRC_CKEY | WINED3D_BLT_DST_CKEY +@@ -4380,7 +4400,7 @@ do { \ + LONG tmpxy; + dTopLeft = dbuf; + dTopRight = dbuf + ((dstwidth - 1) * bpp); +- dBottomLeft = dTopLeft + ((dstheight - 1) * dst_map.row_pitch); ++ dBottomLeft = dTopLeft + ((dstheight - 1) * dst_row_pitch); + dBottomRight = dBottomLeft + ((dstwidth - 1) * bpp); + + if (fx->fx & WINEDDBLTFX_ARITHSTRETCHY) +@@ -4463,7 +4483,7 @@ do { \ + type *d = (type *)dbuf, *dx, tmp; \ + for (y = sy = 0; y < dstheight; ++y, sy += yinc) \ + { \ +- s = (const type *)(sbase + (sy >> 16) * src_map.row_pitch); \ ++ s = (const type *)(sbase + (sy >> 16) * src_row_pitch); \ + dx = d; \ + for (x = sx = 0; x < dstwidth; ++x, sx += xinc) \ + { \ +@@ -4496,7 +4516,7 @@ do { \ + BYTE *d = dbuf, *dx; + for (y = sy = 0; y < dstheight; ++y, sy += yinc) + { +- sbuf = sbase + (sy >> 16) * src_map.row_pitch; ++ sbuf = sbase + (sy >> 16) * src_row_pitch; + dx = d; + for (x = sx = 0; x < dstwidth; ++x, sx+= xinc) + { +@@ -4527,6 +4547,10 @@ do { \ + } + } + ++ wined3d_resource_invalidate_location(&dst_surface->resource, ~dst_surface->resource.map_binding); ++ if (dst_surface->container) ++ wined3d_texture_set_dirty(dst_surface->container); ++ + error: + if (flags && FIXME_ON(d3d_surface)) + { +@@ -4534,12 +4558,24 @@ error: + } + + release: +- wined3d_surface_unmap(dst_surface); +- if (src_surface && src_surface != dst_surface) +- wined3d_surface_unmap(src_surface); ++ if (dst_data) ++ { ++ wined3d_resource_release_map_ptr(&dst_surface->resource, context); ++ ++ if (dst_surface->container->swapchain ++ && dst_surface->container == dst_surface->container->swapchain->front_buffer) ++ { ++ dst_surface->lockedRect = *dst_rect; ++ dst_surface->surface_ops->surface_frontbuffer_updated(dst_surface); ++ } ++ } ++ if (src_surface && src_surface != dst_surface && src_data) ++ wined3d_resource_release_map_ptr(&src_surface->resource, context); + /* Release the converted surface, if any. */ + if (src_texture) + wined3d_texture_decref(src_texture); ++ if (context) ++ context_release(context); + + return hr; + } +-- +2.7.1 + diff --git a/patches/wined3d-CSMT_Main/0042-wined3d-Move-the-framebuffer-into-wined3d_state.patch b/patches/wined3d-CSMT_Main/0043-wined3d-Move-the-framebuffer-into-wined3d_state.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0042-wined3d-Move-the-framebuffer-into-wined3d_state.patch rename to patches/wined3d-CSMT_Main/0043-wined3d-Move-the-framebuffer-into-wined3d_state.patch diff --git a/patches/wined3d-CSMT_Main/0043-wined3d-Get-rid-of-state-access-in-shader_generate_g.patch b/patches/wined3d-CSMT_Main/0044-wined3d-Get-rid-of-state-access-in-shader_generate_g.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0043-wined3d-Get-rid-of-state-access-in-shader_generate_g.patch rename to patches/wined3d-CSMT_Main/0044-wined3d-Get-rid-of-state-access-in-shader_generate_g.patch diff --git a/patches/wined3d-CSMT_Main/0044-wined3d-Preload-buffers-if-streamsrc-is-not-dirty.patch b/patches/wined3d-CSMT_Main/0045-wined3d-Preload-buffers-if-streamsrc-is-not-dirty.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0044-wined3d-Preload-buffers-if-streamsrc-is-not-dirty.patch rename to patches/wined3d-CSMT_Main/0045-wined3d-Preload-buffers-if-streamsrc-is-not-dirty.patch diff --git a/patches/wined3d-CSMT_Main/0045-wined3d-Hackily-introduce-a-multithreaded-command-st.patch b/patches/wined3d-CSMT_Main/0046-wined3d-Hackily-introduce-a-multithreaded-command-st.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0045-wined3d-Hackily-introduce-a-multithreaded-command-st.patch rename to patches/wined3d-CSMT_Main/0046-wined3d-Hackily-introduce-a-multithreaded-command-st.patch diff --git a/patches/wined3d-CSMT_Main/0046-wined3d-Wait-for-resource-updates-to-finish-when-usi.patch b/patches/wined3d-CSMT_Main/0047-wined3d-Wait-for-resource-updates-to-finish-when-usi.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0046-wined3d-Wait-for-resource-updates-to-finish-when-usi.patch rename to patches/wined3d-CSMT_Main/0047-wined3d-Wait-for-resource-updates-to-finish-when-usi.patch diff --git a/patches/wined3d-CSMT_Main/0047-wined3d-Don-t-store-pointers-in-struct-wined3d_cs_pr.patch b/patches/wined3d-CSMT_Main/0048-wined3d-Don-t-store-pointers-in-struct-wined3d_cs_pr.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0047-wined3d-Don-t-store-pointers-in-struct-wined3d_cs_pr.patch rename to patches/wined3d-CSMT_Main/0048-wined3d-Don-t-store-pointers-in-struct-wined3d_cs_pr.patch diff --git a/patches/wined3d-CSMT_Main/0048-wined3d-Don-t-put-rectangle-pointers-into-wined3d_cs.patch b/patches/wined3d-CSMT_Main/0049-wined3d-Don-t-put-rectangle-pointers-into-wined3d_cs.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0048-wined3d-Don-t-put-rectangle-pointers-into-wined3d_cs.patch rename to patches/wined3d-CSMT_Main/0049-wined3d-Don-t-put-rectangle-pointers-into-wined3d_cs.patch diff --git a/patches/wined3d-CSMT_Main/0049-wined3d-Store-the-color-in-clear-ops-instead-of-a-po.patch b/patches/wined3d-CSMT_Main/0050-wined3d-Store-the-color-in-clear-ops-instead-of-a-po.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0049-wined3d-Store-the-color-in-clear-ops-instead-of-a-po.patch rename to patches/wined3d-CSMT_Main/0050-wined3d-Store-the-color-in-clear-ops-instead-of-a-po.patch diff --git a/patches/wined3d-CSMT_Main/0050-wined3d-Pass-the-state-to-draw_primitive.patch b/patches/wined3d-CSMT_Main/0051-wined3d-Pass-the-state-to-draw_primitive.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0050-wined3d-Pass-the-state-to-draw_primitive.patch rename to patches/wined3d-CSMT_Main/0051-wined3d-Pass-the-state-to-draw_primitive.patch diff --git a/patches/wined3d-CSMT_Main/0051-wined3d-Wait-for-the-cs-before-destroying-objects.patch b/patches/wined3d-CSMT_Main/0052-wined3d-Wait-for-the-cs-before-destroying-objects.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0051-wined3d-Wait-for-the-cs-before-destroying-objects.patch rename to patches/wined3d-CSMT_Main/0052-wined3d-Wait-for-the-cs-before-destroying-objects.patch diff --git a/patches/wined3d-CSMT_Main/0052-wined3d-Give-the-cs-its-own-state.patch b/patches/wined3d-CSMT_Main/0053-wined3d-Give-the-cs-its-own-state.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0052-wined3d-Give-the-cs-its-own-state.patch rename to patches/wined3d-CSMT_Main/0053-wined3d-Give-the-cs-its-own-state.patch diff --git a/patches/wined3d-CSMT_Main/0053-wined3d-Send-float-constant-updates-through-the-comm.patch b/patches/wined3d-CSMT_Main/0054-wined3d-Send-float-constant-updates-through-the-comm.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0053-wined3d-Send-float-constant-updates-through-the-comm.patch rename to patches/wined3d-CSMT_Main/0054-wined3d-Send-float-constant-updates-through-the-comm.patch diff --git a/patches/wined3d-CSMT_Main/0054-wined3d-Request-a-glFinish-before-modifying-resource.patch b/patches/wined3d-CSMT_Main/0055-wined3d-Request-a-glFinish-before-modifying-resource.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0054-wined3d-Request-a-glFinish-before-modifying-resource.patch rename to patches/wined3d-CSMT_Main/0055-wined3d-Request-a-glFinish-before-modifying-resource.patch diff --git a/patches/wined3d-CSMT_Main/0055-wined3d-Finish-the-cs-before-changing-the-texture-lo.patch b/patches/wined3d-CSMT_Main/0056-wined3d-Finish-the-cs-before-changing-the-texture-lo.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0055-wined3d-Finish-the-cs-before-changing-the-texture-lo.patch rename to patches/wined3d-CSMT_Main/0056-wined3d-Finish-the-cs-before-changing-the-texture-lo.patch diff --git a/patches/wined3d-CSMT_Main/0056-wined3d-Don-t-call-glFinish-after-clears.patch b/patches/wined3d-CSMT_Main/0057-wined3d-Don-t-call-glFinish-after-clears.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0056-wined3d-Don-t-call-glFinish-after-clears.patch rename to patches/wined3d-CSMT_Main/0057-wined3d-Don-t-call-glFinish-after-clears.patch diff --git a/patches/wined3d-CSMT_Main/0057-wined3d-Don-t-call-glFinish-after-draws.patch b/patches/wined3d-CSMT_Main/0058-wined3d-Don-t-call-glFinish-after-draws.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0057-wined3d-Don-t-call-glFinish-after-draws.patch rename to patches/wined3d-CSMT_Main/0058-wined3d-Don-t-call-glFinish-after-draws.patch diff --git a/patches/wined3d-CSMT_Main/0058-wined3d-Shadow-device-offscreenBuffer-in-the-context.patch b/patches/wined3d-CSMT_Main/0059-wined3d-Shadow-device-offscreenBuffer-in-the-context.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0058-wined3d-Shadow-device-offscreenBuffer-in-the-context.patch rename to patches/wined3d-CSMT_Main/0059-wined3d-Shadow-device-offscreenBuffer-in-the-context.patch diff --git a/patches/wined3d-CSMT_Main/0059-wined3d-Don-t-access-the-stateblock-in-find_draw_buf.patch b/patches/wined3d-CSMT_Main/0060-wined3d-Don-t-access-the-stateblock-in-find_draw_buf.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0059-wined3d-Don-t-access-the-stateblock-in-find_draw_buf.patch rename to patches/wined3d-CSMT_Main/0060-wined3d-Don-t-access-the-stateblock-in-find_draw_buf.patch diff --git a/patches/wined3d-CSMT_Main/0060-wined3d-Pass-the-depth-stencil-to-swapchain-present.patch b/patches/wined3d-CSMT_Main/0061-wined3d-Pass-the-depth-stencil-to-swapchain-present.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0060-wined3d-Pass-the-depth-stencil-to-swapchain-present.patch rename to patches/wined3d-CSMT_Main/0061-wined3d-Pass-the-depth-stencil-to-swapchain-present.patch diff --git a/patches/wined3d-CSMT_Main/0061-wined3d-Don-t-store-viewport-pointers-in-the-command.patch b/patches/wined3d-CSMT_Main/0062-wined3d-Don-t-store-viewport-pointers-in-the-command.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0061-wined3d-Don-t-store-viewport-pointers-in-the-command.patch rename to patches/wined3d-CSMT_Main/0062-wined3d-Don-t-store-viewport-pointers-in-the-command.patch diff --git a/patches/wined3d-CSMT_Main/0062-wined3d-Keep-track-of-the-onscreen-depth-stencil-in-.patch b/patches/wined3d-CSMT_Main/0063-wined3d-Keep-track-of-the-onscreen-depth-stencil-in-.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0062-wined3d-Keep-track-of-the-onscreen-depth-stencil-in-.patch rename to patches/wined3d-CSMT_Main/0063-wined3d-Keep-track-of-the-onscreen-depth-stencil-in-.patch diff --git a/patches/wined3d-CSMT_Main/0063-wined3d-Send-base-vertex-index-updates-through-the-c.patch b/patches/wined3d-CSMT_Main/0064-wined3d-Send-base-vertex-index-updates-through-the-c.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0063-wined3d-Send-base-vertex-index-updates-through-the-c.patch rename to patches/wined3d-CSMT_Main/0064-wined3d-Send-base-vertex-index-updates-through-the-c.patch diff --git a/patches/wined3d-CSMT_Main/0064-wined3d-Send-primitive-type-updates-through-the-comm.patch b/patches/wined3d-CSMT_Main/0065-wined3d-Send-primitive-type-updates-through-the-comm.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0064-wined3d-Send-primitive-type-updates-through-the-comm.patch rename to patches/wined3d-CSMT_Main/0065-wined3d-Send-primitive-type-updates-through-the-comm.patch diff --git a/patches/wined3d-CSMT_Main/0065-wined3d-Send-bool-constant-updates-through-the-comma.patch b/patches/wined3d-CSMT_Main/0066-wined3d-Send-bool-constant-updates-through-the-comma.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0065-wined3d-Send-bool-constant-updates-through-the-comma.patch rename to patches/wined3d-CSMT_Main/0066-wined3d-Send-bool-constant-updates-through-the-comma.patch diff --git a/patches/wined3d-CSMT_Main/0066-wined3d-Send-int-constant-updates-through-the-comman.patch b/patches/wined3d-CSMT_Main/0067-wined3d-Send-int-constant-updates-through-the-comman.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0066-wined3d-Send-int-constant-updates-through-the-comman.patch rename to patches/wined3d-CSMT_Main/0067-wined3d-Send-int-constant-updates-through-the-comman.patch diff --git a/patches/wined3d-CSMT_Main/0067-wined3d-Send-light-updates-through-the-command-strea.patch b/patches/wined3d-CSMT_Main/0068-wined3d-Send-light-updates-through-the-command-strea.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0067-wined3d-Send-light-updates-through-the-command-strea.patch rename to patches/wined3d-CSMT_Main/0068-wined3d-Send-light-updates-through-the-command-strea.patch diff --git a/patches/wined3d-CSMT_Main/0068-wined3d-Prevent-the-command-stream-from-running-ahea.patch b/patches/wined3d-CSMT_Main/0069-wined3d-Prevent-the-command-stream-from-running-ahea.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0068-wined3d-Prevent-the-command-stream-from-running-ahea.patch rename to patches/wined3d-CSMT_Main/0069-wined3d-Prevent-the-command-stream-from-running-ahea.patch diff --git a/patches/wined3d-CSMT_Main/0069-wined3d-Wait-for-the-cs-to-finish-before-destroying-.patch b/patches/wined3d-CSMT_Main/0070-wined3d-Wait-for-the-cs-to-finish-before-destroying-.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0069-wined3d-Wait-for-the-cs-to-finish-before-destroying-.patch rename to patches/wined3d-CSMT_Main/0070-wined3d-Wait-for-the-cs-to-finish-before-destroying-.patch diff --git a/patches/wined3d-CSMT_Main/0070-wined3d-Run-the-cs-asynchronously.patch b/patches/wined3d-CSMT_Main/0071-wined3d-Run-the-cs-asynchronously.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0070-wined3d-Run-the-cs-asynchronously.patch rename to patches/wined3d-CSMT_Main/0071-wined3d-Run-the-cs-asynchronously.patch diff --git a/patches/wined3d-CSMT_Main/0071-wined3d-Send-blits-through-the-command-stream.patch b/patches/wined3d-CSMT_Main/0072-wined3d-Send-blits-through-the-command-stream.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0071-wined3d-Send-blits-through-the-command-stream.patch rename to patches/wined3d-CSMT_Main/0072-wined3d-Send-blits-through-the-command-stream.patch diff --git a/patches/wined3d-CSMT_Main/0072-wined3d-Get-rid-of-WINED3D_BUFFER_FLUSH.patch b/patches/wined3d-CSMT_Main/0073-wined3d-Get-rid-of-WINED3D_BUFFER_FLUSH.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0072-wined3d-Get-rid-of-WINED3D_BUFFER_FLUSH.patch rename to patches/wined3d-CSMT_Main/0073-wined3d-Get-rid-of-WINED3D_BUFFER_FLUSH.patch diff --git a/patches/wined3d-CSMT_Main/0073-wined3d-Don-t-force-strict-draw-ordering-for-multith.patch b/patches/wined3d-CSMT_Main/0074-wined3d-Don-t-force-strict-draw-ordering-for-multith.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0073-wined3d-Don-t-force-strict-draw-ordering-for-multith.patch rename to patches/wined3d-CSMT_Main/0074-wined3d-Don-t-force-strict-draw-ordering-for-multith.patch diff --git a/patches/wined3d-CSMT_Main/0074-wined3d-Send-render-target-view-clears-through-the-c.patch b/patches/wined3d-CSMT_Main/0075-wined3d-Send-render-target-view-clears-through-the-c.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0074-wined3d-Send-render-target-view-clears-through-the-c.patch rename to patches/wined3d-CSMT_Main/0075-wined3d-Send-render-target-view-clears-through-the-c.patch diff --git a/patches/wined3d-CSMT_Main/0075-wined3d-Wait-for-the-CS-in-GetDC.patch b/patches/wined3d-CSMT_Main/0076-wined3d-Wait-for-the-CS-in-GetDC.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0075-wined3d-Wait-for-the-CS-in-GetDC.patch rename to patches/wined3d-CSMT_Main/0076-wined3d-Wait-for-the-CS-in-GetDC.patch diff --git a/patches/wined3d-CSMT_Main/0076-wined3d-send-resource-maps-through-the-command-strea.patch b/patches/wined3d-CSMT_Main/0077-wined3d-send-resource-maps-through-the-command-strea.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0076-wined3d-send-resource-maps-through-the-command-strea.patch rename to patches/wined3d-CSMT_Main/0077-wined3d-send-resource-maps-through-the-command-strea.patch diff --git a/patches/wined3d-CSMT_Main/0077-wined3d-Get-rid-of-the-end_scene-flush-and-finish.patch b/patches/wined3d-CSMT_Main/0078-wined3d-Get-rid-of-the-end_scene-flush-and-finish.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0077-wined3d-Get-rid-of-the-end_scene-flush-and-finish.patch rename to patches/wined3d-CSMT_Main/0078-wined3d-Get-rid-of-the-end_scene-flush-and-finish.patch diff --git a/patches/wined3d-CSMT_Main/0078-wined3d-Replace-the-linked-lists-with-a-ringbuffer.patch b/patches/wined3d-CSMT_Main/0079-wined3d-Replace-the-linked-lists-with-a-ringbuffer.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0078-wined3d-Replace-the-linked-lists-with-a-ringbuffer.patch rename to patches/wined3d-CSMT_Main/0079-wined3d-Replace-the-linked-lists-with-a-ringbuffer.patch diff --git a/patches/wined3d-CSMT_Main/0079-wined3d-Don-t-preload-buffers-on-unmap.patch b/patches/wined3d-CSMT_Main/0080-wined3d-Don-t-preload-buffers-on-unmap.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0079-wined3d-Don-t-preload-buffers-on-unmap.patch rename to patches/wined3d-CSMT_Main/0080-wined3d-Don-t-preload-buffers-on-unmap.patch diff --git a/patches/wined3d-CSMT_Main/0080-wined3d-Don-t-call-glFinish-before-swapping.patch b/patches/wined3d-CSMT_Main/0081-wined3d-Don-t-call-glFinish-before-swapping.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0080-wined3d-Don-t-call-glFinish-before-swapping.patch rename to patches/wined3d-CSMT_Main/0081-wined3d-Don-t-call-glFinish-before-swapping.patch diff --git a/patches/wined3d-CSMT_Main/0081-wined3d-wined3d_-_query_issue-never-fails.patch b/patches/wined3d-CSMT_Main/0082-wined3d-wined3d_-_query_issue-never-fails.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0081-wined3d-wined3d_-_query_issue-never-fails.patch rename to patches/wined3d-CSMT_Main/0082-wined3d-wined3d_-_query_issue-never-fails.patch diff --git a/patches/wined3d-CSMT_Main/0082-wined3d-Add-query-support-to-the-command-stream.patch b/patches/wined3d-CSMT_Main/0083-wined3d-Add-query-support-to-the-command-stream.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0082-wined3d-Add-query-support-to-the-command-stream.patch rename to patches/wined3d-CSMT_Main/0083-wined3d-Add-query-support-to-the-command-stream.patch diff --git a/patches/wined3d-CSMT_Main/0083-wined3d-Check-our-CS-state-to-find-out-if-a-query-is.patch b/patches/wined3d-CSMT_Main/0084-wined3d-Check-our-CS-state-to-find-out-if-a-query-is.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0083-wined3d-Check-our-CS-state-to-find-out-if-a-query-is.patch rename to patches/wined3d-CSMT_Main/0084-wined3d-Check-our-CS-state-to-find-out-if-a-query-is.patch diff --git a/patches/wined3d-CSMT_Main/0084-wined3d-Poll-queries-automatically-in-the-CS.patch b/patches/wined3d-CSMT_Main/0085-wined3d-Poll-queries-automatically-in-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0084-wined3d-Poll-queries-automatically-in-the-CS.patch rename to patches/wined3d-CSMT_Main/0085-wined3d-Poll-queries-automatically-in-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0085-wined3d-Introduce-a-separate-queue-for-priority-comm.patch b/patches/wined3d-CSMT_Main/0086-wined3d-Introduce-a-separate-queue-for-priority-comm.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0085-wined3d-Introduce-a-separate-queue-for-priority-comm.patch rename to patches/wined3d-CSMT_Main/0086-wined3d-Introduce-a-separate-queue-for-priority-comm.patch diff --git a/patches/wined3d-CSMT_Main/0086-wined3d-Destroy-queries-through-the-CS.patch b/patches/wined3d-CSMT_Main/0087-wined3d-Destroy-queries-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0086-wined3d-Destroy-queries-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0087-wined3d-Destroy-queries-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0087-wined3d-Separate-main-and-worker-thread-query-state.patch b/patches/wined3d-CSMT_Main/0088-wined3d-Separate-main-and-worker-thread-query-state.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0087-wined3d-Separate-main-and-worker-thread-query-state.patch rename to patches/wined3d-CSMT_Main/0088-wined3d-Separate-main-and-worker-thread-query-state.patch diff --git a/patches/wined3d-CSMT_Main/0088-wined3d-Don-t-poll-queries-that-failed-to-start.patch b/patches/wined3d-CSMT_Main/0089-wined3d-Don-t-poll-queries-that-failed-to-start.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0088-wined3d-Don-t-poll-queries-that-failed-to-start.patch rename to patches/wined3d-CSMT_Main/0089-wined3d-Don-t-poll-queries-that-failed-to-start.patch diff --git a/patches/wined3d-CSMT_Main/0089-wined3d-Remove-restated-queries-from-the-poll-list.patch b/patches/wined3d-CSMT_Main/0090-wined3d-Remove-restated-queries-from-the-poll-list.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0089-wined3d-Remove-restated-queries-from-the-poll-list.patch rename to patches/wined3d-CSMT_Main/0090-wined3d-Remove-restated-queries-from-the-poll-list.patch diff --git a/patches/wined3d-CSMT_Main/0090-wined3d-Don-t-reset-the-query-state-if-it-doesn-t-ha.patch b/patches/wined3d-CSMT_Main/0091-wined3d-Don-t-reset-the-query-state-if-it-doesn-t-ha.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0090-wined3d-Don-t-reset-the-query-state-if-it-doesn-t-ha.patch rename to patches/wined3d-CSMT_Main/0091-wined3d-Don-t-reset-the-query-state-if-it-doesn-t-ha.patch diff --git a/patches/wined3d-CSMT_Main/0091-wined3d-Put-this-into-the-query-poll-patch.patch b/patches/wined3d-CSMT_Main/0092-wined3d-Put-this-into-the-query-poll-patch.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0091-wined3d-Put-this-into-the-query-poll-patch.patch rename to patches/wined3d-CSMT_Main/0092-wined3d-Put-this-into-the-query-poll-patch.patch diff --git a/patches/wined3d-CSMT_Main/0092-wined3d-Send-texture-preloads-through-the-CS.patch b/patches/wined3d-CSMT_Main/0093-wined3d-Send-texture-preloads-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0092-wined3d-Send-texture-preloads-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0093-wined3d-Send-texture-preloads-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0093-wined3d-Send-update_texture-calls-through-the-CS.patch b/patches/wined3d-CSMT_Main/0094-wined3d-Send-update_texture-calls-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0093-wined3d-Send-update_texture-calls-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0094-wined3d-Send-update_texture-calls-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0094-wined3d-Get-rid-of-the-surface_upload_data-glFinish.patch b/patches/wined3d-CSMT_Main/0095-wined3d-Get-rid-of-the-surface_upload_data-glFinish.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0094-wined3d-Get-rid-of-the-surface_upload_data-glFinish.patch rename to patches/wined3d-CSMT_Main/0095-wined3d-Get-rid-of-the-surface_upload_data-glFinish.patch diff --git a/patches/wined3d-CSMT_Main/0095-wined3d-Don-t-lock-the-src-volume-in-device_update_v.patch b/patches/wined3d-CSMT_Main/0096-wined3d-Don-t-lock-the-src-volume-in-device_update_v.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0095-wined3d-Don-t-lock-the-src-volume-in-device_update_v.patch rename to patches/wined3d-CSMT_Main/0096-wined3d-Don-t-lock-the-src-volume-in-device_update_v.patch diff --git a/patches/wined3d-CSMT_Main/0096-wined3d-Handle-evit_managed_resources-through-the-CS.patch b/patches/wined3d-CSMT_Main/0097-wined3d-Handle-evit_managed_resources-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0096-wined3d-Handle-evit_managed_resources-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0097-wined3d-Handle-evit_managed_resources-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0097-wined3d-Introduce-resource-fencing.patch b/patches/wined3d-CSMT_Main/0098-wined3d-Introduce-resource-fencing.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0097-wined3d-Introduce-resource-fencing.patch rename to patches/wined3d-CSMT_Main/0098-wined3d-Introduce-resource-fencing.patch diff --git a/patches/wined3d-CSMT_Main/0098-wined3d-Fence-update_texture-and-update_surface-call.patch b/patches/wined3d-CSMT_Main/0099-wined3d-Fence-update_texture-and-update_surface-call.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0098-wined3d-Fence-update_texture-and-update_surface-call.patch rename to patches/wined3d-CSMT_Main/0099-wined3d-Fence-update_texture-and-update_surface-call.patch diff --git a/patches/wined3d-CSMT_Main/0099-wined3d-Dirtify-resources-on-unmap.patch b/patches/wined3d-CSMT_Main/0100-wined3d-Dirtify-resources-on-unmap.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0099-wined3d-Dirtify-resources-on-unmap.patch rename to patches/wined3d-CSMT_Main/0100-wined3d-Dirtify-resources-on-unmap.patch diff --git a/patches/wined3d-CSMT_Main/0100-wined3d-Fence-texture-reads-in-draws.patch b/patches/wined3d-CSMT_Main/0101-wined3d-Fence-texture-reads-in-draws.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0100-wined3d-Fence-texture-reads-in-draws.patch rename to patches/wined3d-CSMT_Main/0101-wined3d-Fence-texture-reads-in-draws.patch diff --git a/patches/wined3d-CSMT_Main/0101-wined3d-Fence-render-targets-and-depth-stencils.patch b/patches/wined3d-CSMT_Main/0102-wined3d-Fence-render-targets-and-depth-stencils.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0101-wined3d-Fence-render-targets-and-depth-stencils.patch rename to patches/wined3d-CSMT_Main/0102-wined3d-Fence-render-targets-and-depth-stencils.patch diff --git a/patches/wined3d-CSMT_Main/0102-wined3d-Fence-blit-operations.patch b/patches/wined3d-CSMT_Main/0103-wined3d-Fence-blit-operations.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0102-wined3d-Fence-blit-operations.patch rename to patches/wined3d-CSMT_Main/0103-wined3d-Fence-blit-operations.patch diff --git a/patches/wined3d-CSMT_Main/0103-wined3d-Fence-color_fill-operations.patch b/patches/wined3d-CSMT_Main/0104-wined3d-Fence-color_fill-operations.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0103-wined3d-Fence-color_fill-operations.patch rename to patches/wined3d-CSMT_Main/0104-wined3d-Fence-color_fill-operations.patch diff --git a/patches/wined3d-CSMT_Main/0104-wined3d-Fence-clear-calls.patch b/patches/wined3d-CSMT_Main/0105-wined3d-Fence-clear-calls.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0104-wined3d-Fence-clear-calls.patch rename to patches/wined3d-CSMT_Main/0105-wined3d-Fence-clear-calls.patch diff --git a/patches/wined3d-CSMT_Main/0105-wined3d-Fence-present-calls.patch b/patches/wined3d-CSMT_Main/0106-wined3d-Fence-present-calls.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0105-wined3d-Fence-present-calls.patch rename to patches/wined3d-CSMT_Main/0106-wined3d-Fence-present-calls.patch diff --git a/patches/wined3d-CSMT_Main/0106-wined3d-Make-resource-maps-and-unmaps-a-priority-com.patch b/patches/wined3d-CSMT_Main/0107-wined3d-Make-resource-maps-and-unmaps-a-priority-com.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0106-wined3d-Make-resource-maps-and-unmaps-a-priority-com.patch rename to patches/wined3d-CSMT_Main/0107-wined3d-Make-resource-maps-and-unmaps-a-priority-com.patch diff --git a/patches/wined3d-CSMT_Main/0107-wined3d-Dirtify-changed-textures-through-the-command.patch b/patches/wined3d-CSMT_Main/0108-wined3d-Dirtify-changed-textures-through-the-command.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0107-wined3d-Dirtify-changed-textures-through-the-command.patch rename to patches/wined3d-CSMT_Main/0108-wined3d-Dirtify-changed-textures-through-the-command.patch diff --git a/patches/wined3d-CSMT_Main/0108-wined3d-Wrap-GL-BOs-in-a-structure.patch b/patches/wined3d-CSMT_Main/0109-wined3d-Wrap-GL-BOs-in-a-structure.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0108-wined3d-Wrap-GL-BOs-in-a-structure.patch rename to patches/wined3d-CSMT_Main/0109-wined3d-Wrap-GL-BOs-in-a-structure.patch diff --git a/patches/wined3d-CSMT_Main/0109-wined3d-Separate-resource-map-and-draw-buffers.patch b/patches/wined3d-CSMT_Main/0110-wined3d-Separate-resource-map-and-draw-buffers.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0109-wined3d-Separate-resource-map-and-draw-buffers.patch rename to patches/wined3d-CSMT_Main/0110-wined3d-Separate-resource-map-and-draw-buffers.patch diff --git a/patches/wined3d-CSMT_Main/0110-wined3d-Implement-DISCARD-resource-maps-with-buffers.patch b/patches/wined3d-CSMT_Main/0111-wined3d-Implement-DISCARD-resource-maps-with-buffers.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0110-wined3d-Implement-DISCARD-resource-maps-with-buffers.patch rename to patches/wined3d-CSMT_Main/0111-wined3d-Implement-DISCARD-resource-maps-with-buffers.patch diff --git a/patches/wined3d-CSMT_Main/0111-wined3d-Implement-DISCARD-resource-maps-with-heap-me.patch b/patches/wined3d-CSMT_Main/0112-wined3d-Implement-DISCARD-resource-maps-with-heap-me.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0111-wined3d-Implement-DISCARD-resource-maps-with-heap-me.patch rename to patches/wined3d-CSMT_Main/0112-wined3d-Implement-DISCARD-resource-maps-with-heap-me.patch diff --git a/patches/wined3d-CSMT_Main/0112-wined3d-Unset-some-objects-in-state_init_default.patch b/patches/wined3d-CSMT_Main/0113-wined3d-Unset-some-objects-in-state_init_default.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0112-wined3d-Unset-some-objects-in-state_init_default.patch rename to patches/wined3d-CSMT_Main/0113-wined3d-Unset-some-objects-in-state_init_default.patch diff --git a/patches/wined3d-CSMT_Main/0113-wined3d-Don-t-request-the-frontbuffer-to-create-dumm.patch b/patches/wined3d-CSMT_Main/0114-wined3d-Don-t-request-the-frontbuffer-to-create-dumm.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0113-wined3d-Don-t-request-the-frontbuffer-to-create-dumm.patch rename to patches/wined3d-CSMT_Main/0114-wined3d-Don-t-request-the-frontbuffer-to-create-dumm.patch diff --git a/patches/wined3d-CSMT_Main/0114-wined3d-Use-double-buffered-buffers-for-multithreade.patch b/patches/wined3d-CSMT_Main/0115-wined3d-Use-double-buffered-buffers-for-multithreade.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0114-wined3d-Use-double-buffered-buffers-for-multithreade.patch rename to patches/wined3d-CSMT_Main/0115-wined3d-Use-double-buffered-buffers-for-multithreade.patch diff --git a/patches/wined3d-CSMT_Main/0115-wined3d-Don-t-synchronize-NOOVERWRITE-buffer-maps.patch b/patches/wined3d-CSMT_Main/0116-wined3d-Don-t-synchronize-NOOVERWRITE-buffer-maps.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0115-wined3d-Don-t-synchronize-NOOVERWRITE-buffer-maps.patch rename to patches/wined3d-CSMT_Main/0116-wined3d-Don-t-synchronize-NOOVERWRITE-buffer-maps.patch diff --git a/patches/wined3d-CSMT_Main/0116-wined3d-Separate-buffer-map-write-and-draw-read-memo.patch b/patches/wined3d-CSMT_Main/0117-wined3d-Separate-buffer-map-write-and-draw-read-memo.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0116-wined3d-Separate-buffer-map-write-and-draw-read-memo.patch rename to patches/wined3d-CSMT_Main/0117-wined3d-Separate-buffer-map-write-and-draw-read-memo.patch diff --git a/patches/wined3d-CSMT_Main/0117-wined3d-Accelerate-DISCARD-buffer-maps.patch b/patches/wined3d-CSMT_Main/0118-wined3d-Accelerate-DISCARD-buffer-maps.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0117-wined3d-Accelerate-DISCARD-buffer-maps.patch rename to patches/wined3d-CSMT_Main/0118-wined3d-Accelerate-DISCARD-buffer-maps.patch diff --git a/patches/wined3d-CSMT_Main/0118-wined3d-Accelerate-READONLY-buffer-maps.patch b/patches/wined3d-CSMT_Main/0119-wined3d-Accelerate-READONLY-buffer-maps.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0118-wined3d-Accelerate-READONLY-buffer-maps.patch rename to patches/wined3d-CSMT_Main/0119-wined3d-Accelerate-READONLY-buffer-maps.patch diff --git a/patches/wined3d-CSMT_Main/0119-wined3d-Access-the-buffer-dirty-areas-through-the-CS.patch b/patches/wined3d-CSMT_Main/0120-wined3d-Access-the-buffer-dirty-areas-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0119-wined3d-Access-the-buffer-dirty-areas-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0120-wined3d-Access-the-buffer-dirty-areas-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0120-wined3d-Ignore-buffer-resource.map_count-in-the-CS.patch b/patches/wined3d-CSMT_Main/0121-wined3d-Ignore-buffer-resource.map_count-in-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0120-wined3d-Ignore-buffer-resource.map_count-in-the-CS.patch rename to patches/wined3d-CSMT_Main/0121-wined3d-Ignore-buffer-resource.map_count-in-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0121-wined3d-Send-buffer-preloads-through-the-CS.patch b/patches/wined3d-CSMT_Main/0122-wined3d-Send-buffer-preloads-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0121-wined3d-Send-buffer-preloads-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0122-wined3d-Send-buffer-preloads-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0122-wined3d-Use-glBufferSubData-instead-of-glMapBufferRa.patch b/patches/wined3d-CSMT_Main/0123-wined3d-Use-glBufferSubData-instead-of-glMapBufferRa.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0122-wined3d-Use-glBufferSubData-instead-of-glMapBufferRa.patch rename to patches/wined3d-CSMT_Main/0123-wined3d-Use-glBufferSubData-instead-of-glMapBufferRa.patch diff --git a/patches/wined3d-CSMT_Main/0123-wined3d-Separate-GL-buffer-discard-control-from-igno.patch b/patches/wined3d-CSMT_Main/0124-wined3d-Separate-GL-buffer-discard-control-from-igno.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0123-wined3d-Separate-GL-buffer-discard-control-from-igno.patch rename to patches/wined3d-CSMT_Main/0124-wined3d-Separate-GL-buffer-discard-control-from-igno.patch diff --git a/patches/wined3d-CSMT_Main/0124-wined3d-Create-buffers-before-mapping-them.patch b/patches/wined3d-CSMT_Main/0125-wined3d-Create-buffers-before-mapping-them.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0124-wined3d-Create-buffers-before-mapping-them.patch rename to patches/wined3d-CSMT_Main/0125-wined3d-Create-buffers-before-mapping-them.patch diff --git a/patches/wined3d-CSMT_Main/0125-wined3d-Destroy-views-through-the-CS.patch b/patches/wined3d-CSMT_Main/0126-wined3d-Destroy-views-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0125-wined3d-Destroy-views-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0126-wined3d-Destroy-views-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0126-wined3d-Remove-another-glFinish.patch b/patches/wined3d-CSMT_Main/0127-wined3d-Remove-another-glFinish.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0126-wined3d-Remove-another-glFinish.patch rename to patches/wined3d-CSMT_Main/0127-wined3d-Remove-another-glFinish.patch diff --git a/patches/wined3d-CSMT_Main/0127-wined3d-Destroy-vertex-declarations-through-the-CS.patch b/patches/wined3d-CSMT_Main/0128-wined3d-Destroy-vertex-declarations-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0127-wined3d-Destroy-vertex-declarations-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0128-wined3d-Destroy-vertex-declarations-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0128-wined3d-Destroy-shaders-through-the-CS.patch b/patches/wined3d-CSMT_Main/0129-wined3d-Destroy-shaders-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0128-wined3d-Destroy-shaders-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0129-wined3d-Destroy-shaders-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0129-wined3d-Create-VBOs-through-the-command-stream.patch b/patches/wined3d-CSMT_Main/0130-wined3d-Create-VBOs-through-the-command-stream.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0129-wined3d-Create-VBOs-through-the-command-stream.patch rename to patches/wined3d-CSMT_Main/0130-wined3d-Create-VBOs-through-the-command-stream.patch diff --git a/patches/wined3d-CSMT_Main/0130-wined3d-Clean-up-resource-data-through-the-CS.patch b/patches/wined3d-CSMT_Main/0131-wined3d-Clean-up-resource-data-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0130-wined3d-Clean-up-resource-data-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0131-wined3d-Clean-up-resource-data-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0131-wined3d-Clean-up-buffer-resource-data-through-the-CS.patch b/patches/wined3d-CSMT_Main/0132-wined3d-Clean-up-buffer-resource-data-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0131-wined3d-Clean-up-buffer-resource-data-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0132-wined3d-Clean-up-buffer-resource-data-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0132-wined3d-Clean-up-volume-resource-data-through-the-CS.patch b/patches/wined3d-CSMT_Main/0133-wined3d-Clean-up-volume-resource-data-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0132-wined3d-Clean-up-volume-resource-data-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0133-wined3d-Clean-up-volume-resource-data-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0133-wined3d-Clean-up-surfaces-through-the-cs.patch b/patches/wined3d-CSMT_Main/0134-wined3d-Clean-up-surfaces-through-the-cs.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0133-wined3d-Clean-up-surfaces-through-the-cs.patch rename to patches/wined3d-CSMT_Main/0134-wined3d-Clean-up-surfaces-through-the-cs.patch diff --git a/patches/wined3d-CSMT_Main/0134-wined3d-Clean-up-texture-resources-through-the-cs.patch b/patches/wined3d-CSMT_Main/0135-wined3d-Clean-up-texture-resources-through-the-cs.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0134-wined3d-Clean-up-texture-resources-through-the-cs.patch rename to patches/wined3d-CSMT_Main/0135-wined3d-Clean-up-texture-resources-through-the-cs.patch diff --git a/patches/wined3d-CSMT_Main/0135-wined3d-Unload-resources-through-the-CS-in-uninit_3d.patch b/patches/wined3d-CSMT_Main/0136-wined3d-Unload-resources-through-the-CS-in-uninit_3d.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0135-wined3d-Unload-resources-through-the-CS-in-uninit_3d.patch rename to patches/wined3d-CSMT_Main/0136-wined3d-Unload-resources-through-the-CS-in-uninit_3d.patch diff --git a/patches/wined3d-CSMT_Main/0136-wined3d-Unload-resources-through-the-CS-in-device_re.patch b/patches/wined3d-CSMT_Main/0137-wined3d-Unload-resources-through-the-CS-in-device_re.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0136-wined3d-Unload-resources-through-the-CS-in-device_re.patch rename to patches/wined3d-CSMT_Main/0137-wined3d-Unload-resources-through-the-CS-in-device_re.patch diff --git a/patches/wined3d-CSMT_Main/0137-wined3d-Don-t-glFinish-after-a-depth-buffer-blit.patch b/patches/wined3d-CSMT_Main/0138-wined3d-Don-t-glFinish-after-a-depth-buffer-blit.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0137-wined3d-Don-t-glFinish-after-a-depth-buffer-blit.patch rename to patches/wined3d-CSMT_Main/0138-wined3d-Don-t-glFinish-after-a-depth-buffer-blit.patch diff --git a/patches/wined3d-CSMT_Main/0138-wined3d-Remove-software-cursor-support.patch b/patches/wined3d-CSMT_Main/0139-wined3d-Remove-software-cursor-support.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0138-wined3d-Remove-software-cursor-support.patch rename to patches/wined3d-CSMT_Main/0139-wined3d-Remove-software-cursor-support.patch diff --git a/patches/wined3d-CSMT_Main/0139-wined3d-Create-dummy-textures-through-the-CS.patch b/patches/wined3d-CSMT_Main/0140-wined3d-Create-dummy-textures-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0139-wined3d-Create-dummy-textures-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0140-wined3d-Create-dummy-textures-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0140-wined3d-Create-the-initial-context-through-the-CS.patch b/patches/wined3d-CSMT_Main/0141-wined3d-Create-the-initial-context-through-the-CS.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0140-wined3d-Create-the-initial-context-through-the-CS.patch rename to patches/wined3d-CSMT_Main/0141-wined3d-Create-the-initial-context-through-the-CS.patch diff --git a/patches/wined3d-CSMT_Main/0141-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch b/patches/wined3d-CSMT_Main/0142-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0141-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch rename to patches/wined3d-CSMT_Main/0142-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch diff --git a/patches/wined3d-CSMT_Main/0142-wined3d-Ignore-WINED3D_MAP_NO_DIRTY_UPDATE-in-resour.patch b/patches/wined3d-CSMT_Main/0143-wined3d-Ignore-WINED3D_MAP_NO_DIRTY_UPDATE-in-resour.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0142-wined3d-Ignore-WINED3D_MAP_NO_DIRTY_UPDATE-in-resour.patch rename to patches/wined3d-CSMT_Main/0143-wined3d-Ignore-WINED3D_MAP_NO_DIRTY_UPDATE-in-resour.patch diff --git a/patches/wined3d-CSMT_Main/0143-wined3d-Delete-GL-contexts-through-the-CS-in-reset.patch b/patches/wined3d-CSMT_Main/0144-wined3d-Delete-GL-contexts-through-the-CS-in-reset.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0143-wined3d-Delete-GL-contexts-through-the-CS-in-reset.patch rename to patches/wined3d-CSMT_Main/0144-wined3d-Delete-GL-contexts-through-the-CS-in-reset.patch diff --git a/patches/wined3d-CSMT_Main/0144-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch b/patches/wined3d-CSMT_Main/0145-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0144-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch rename to patches/wined3d-CSMT_Main/0145-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch diff --git a/patches/wined3d-CSMT_Main/0145-wined3d-Invoke-surface_unload-through-the-CS-in-wine.patch b/patches/wined3d-CSMT_Main/0146-wined3d-Invoke-surface_unload-through-the-CS-in-wine.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0145-wined3d-Invoke-surface_unload-through-the-CS-in-wine.patch rename to patches/wined3d-CSMT_Main/0146-wined3d-Invoke-surface_unload-through-the-CS-in-wine.patch diff --git a/patches/wined3d-CSMT_Main/0146-wined3d-Use-an-event-to-block-the-worker-thread-when.patch b/patches/wined3d-CSMT_Main/0147-wined3d-Use-an-event-to-block-the-worker-thread-when.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0146-wined3d-Use-an-event-to-block-the-worker-thread-when.patch rename to patches/wined3d-CSMT_Main/0147-wined3d-Use-an-event-to-block-the-worker-thread-when.patch diff --git a/patches/wined3d-CSMT_Main/0147-wined3d-Fence-preload-operations.patch b/patches/wined3d-CSMT_Main/0148-wined3d-Fence-preload-operations.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0147-wined3d-Fence-preload-operations.patch rename to patches/wined3d-CSMT_Main/0148-wined3d-Fence-preload-operations.patch diff --git a/patches/wined3d-CSMT_Main/0148-d3d8-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch b/patches/wined3d-CSMT_Main/0149-d3d8-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0148-d3d8-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch rename to patches/wined3d-CSMT_Main/0149-d3d8-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch diff --git a/patches/wined3d-CSMT_Main/0149-d3d9-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch b/patches/wined3d-CSMT_Main/0150-d3d9-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0149-d3d9-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch rename to patches/wined3d-CSMT_Main/0150-d3d9-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch diff --git a/patches/wined3d-CSMT_Main/0150-wined3d-Completely-reset-the-state-on-reset.patch b/patches/wined3d-CSMT_Main/0151-wined3d-Completely-reset-the-state-on-reset.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0150-wined3d-Completely-reset-the-state-on-reset.patch rename to patches/wined3d-CSMT_Main/0151-wined3d-Completely-reset-the-state-on-reset.patch diff --git a/patches/wined3d-CSMT_Main/0151-wined3d-Send-getdc-and-releasedc-through-the-command.patch b/patches/wined3d-CSMT_Main/0152-wined3d-Send-getdc-and-releasedc-through-the-command.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0151-wined3d-Send-getdc-and-releasedc-through-the-command.patch rename to patches/wined3d-CSMT_Main/0152-wined3d-Send-getdc-and-releasedc-through-the-command.patch diff --git a/patches/wined3d-CSMT_Main/0152-wined3d-Set-map_heap_memory-NULL-when-allocating-a-P.patch b/patches/wined3d-CSMT_Main/0153-wined3d-Set-map_heap_memory-NULL-when-allocating-a-P.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0152-wined3d-Set-map_heap_memory-NULL-when-allocating-a-P.patch rename to patches/wined3d-CSMT_Main/0153-wined3d-Set-map_heap_memory-NULL-when-allocating-a-P.patch diff --git a/patches/wined3d-CSMT_Main/0153-wined3d-Wait-only-for-the-buffer-to-be-idle.patch b/patches/wined3d-CSMT_Main/0154-wined3d-Wait-only-for-the-buffer-to-be-idle.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0153-wined3d-Wait-only-for-the-buffer-to-be-idle.patch rename to patches/wined3d-CSMT_Main/0154-wined3d-Wait-only-for-the-buffer-to-be-idle.patch diff --git a/patches/wined3d-CSMT_Main/0154-wined3d-Add-a-comment-about-worker-thread-lag.patch b/patches/wined3d-CSMT_Main/0155-wined3d-Add-a-comment-about-worker-thread-lag.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0154-wined3d-Add-a-comment-about-worker-thread-lag.patch rename to patches/wined3d-CSMT_Main/0155-wined3d-Add-a-comment-about-worker-thread-lag.patch diff --git a/patches/wined3d-CSMT_Main/0155-wined3d-Remove-the-texture-destroy-glFinish.patch b/patches/wined3d-CSMT_Main/0156-wined3d-Remove-the-texture-destroy-glFinish.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0155-wined3d-Remove-the-texture-destroy-glFinish.patch rename to patches/wined3d-CSMT_Main/0156-wined3d-Remove-the-texture-destroy-glFinish.patch diff --git a/patches/wined3d-CSMT_Main/0156-wined3d-Move-FBO-destruction-into-the-worker-thread.patch b/patches/wined3d-CSMT_Main/0157-wined3d-Move-FBO-destruction-into-the-worker-thread.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0156-wined3d-Move-FBO-destruction-into-the-worker-thread.patch rename to patches/wined3d-CSMT_Main/0157-wined3d-Move-FBO-destruction-into-the-worker-thread.patch diff --git a/patches/wined3d-CSMT_Main/0157-wined3d-Don-t-incref-decref-textures-in-color-depth-.patch b/patches/wined3d-CSMT_Main/0158-wined3d-Don-t-incref-decref-textures-in-color-depth-.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0157-wined3d-Don-t-incref-decref-textures-in-color-depth-.patch rename to patches/wined3d-CSMT_Main/0158-wined3d-Don-t-incref-decref-textures-in-color-depth-.patch diff --git a/patches/wined3d-CSMT_Main/0158-Winex11-complain-about-glfinish.patch b/patches/wined3d-CSMT_Main/0159-Winex11-complain-about-glfinish.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0158-Winex11-complain-about-glfinish.patch rename to patches/wined3d-CSMT_Main/0159-Winex11-complain-about-glfinish.patch diff --git a/patches/wined3d-CSMT_Main/0159-wined3d-Make-sure-the-new-window-is-set-up-before-se.patch b/patches/wined3d-CSMT_Main/0160-wined3d-Make-sure-the-new-window-is-set-up-before-se.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0159-wined3d-Make-sure-the-new-window-is-set-up-before-se.patch rename to patches/wined3d-CSMT_Main/0160-wined3d-Make-sure-the-new-window-is-set-up-before-se.patch diff --git a/patches/wined3d-CSMT_Main/0160-wined3d-Remove-the-device_reset-CS-sync-fixme.patch b/patches/wined3d-CSMT_Main/0161-wined3d-Remove-the-device_reset-CS-sync-fixme.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0160-wined3d-Remove-the-device_reset-CS-sync-fixme.patch rename to patches/wined3d-CSMT_Main/0161-wined3d-Remove-the-device_reset-CS-sync-fixme.patch diff --git a/patches/wined3d-CSMT_Main/0161-wined3d-Put-GL_APPLE_flush_buffer_range-syncing-back.patch b/patches/wined3d-CSMT_Main/0162-wined3d-Put-GL_APPLE_flush_buffer_range-syncing-back.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0161-wined3d-Put-GL_APPLE_flush_buffer_range-syncing-back.patch rename to patches/wined3d-CSMT_Main/0162-wined3d-Put-GL_APPLE_flush_buffer_range-syncing-back.patch diff --git a/patches/wined3d-CSMT_Main/0162-wined3d-Wait-for-the-resource-to-be-idle-when-destro.patch b/patches/wined3d-CSMT_Main/0163-wined3d-Wait-for-the-resource-to-be-idle-when-destro.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0162-wined3d-Wait-for-the-resource-to-be-idle-when-destro.patch rename to patches/wined3d-CSMT_Main/0163-wined3d-Wait-for-the-resource-to-be-idle-when-destro.patch diff --git a/patches/wined3d-CSMT_Main/0163-wined3d-Don-t-sync-on-redundant-discard-calls.patch b/patches/wined3d-CSMT_Main/0164-wined3d-Don-t-sync-on-redundant-discard-calls.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0163-wined3d-Don-t-sync-on-redundant-discard-calls.patch rename to patches/wined3d-CSMT_Main/0164-wined3d-Don-t-sync-on-redundant-discard-calls.patch diff --git a/patches/wined3d-CSMT_Main/0164-wined3d-Don-t-discard-new-buffers.patch b/patches/wined3d-CSMT_Main/0165-wined3d-Don-t-discard-new-buffers.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0164-wined3d-Don-t-discard-new-buffers.patch rename to patches/wined3d-CSMT_Main/0165-wined3d-Don-t-discard-new-buffers.patch diff --git a/patches/wined3d-CSMT_Main/0165-wined3d-Don-t-try-to-sync-VBOs-manually-on-OSX-with-.patch b/patches/wined3d-CSMT_Main/0166-wined3d-Don-t-try-to-sync-VBOs-manually-on-OSX-with-.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0165-wined3d-Don-t-try-to-sync-VBOs-manually-on-OSX-with-.patch rename to patches/wined3d-CSMT_Main/0166-wined3d-Don-t-try-to-sync-VBOs-manually-on-OSX-with-.patch diff --git a/patches/wined3d-CSMT_Main/0166-wined3d-Render-target-lock-hack.patch b/patches/wined3d-CSMT_Main/0167-wined3d-Render-target-lock-hack.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0166-wined3d-Render-target-lock-hack.patch rename to patches/wined3d-CSMT_Main/0167-wined3d-Render-target-lock-hack.patch diff --git a/patches/wined3d-CSMT_Main/0167-wined3d-Avoid-calling-wined3d_surface_blt-from-surfa.patch b/patches/wined3d-CSMT_Main/0168-wined3d-Avoid-calling-wined3d_surface_blt-from-surfa.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0167-wined3d-Avoid-calling-wined3d_surface_blt-from-surfa.patch rename to patches/wined3d-CSMT_Main/0168-wined3d-Avoid-calling-wined3d_surface_blt-from-surfa.patch diff --git a/patches/wined3d-CSMT_Main/0168-wined3d-Only-discard-buffers-that-are-in-use.patch b/patches/wined3d-CSMT_Main/0169-wined3d-Only-discard-buffers-that-are-in-use.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0168-wined3d-Only-discard-buffers-that-are-in-use.patch rename to patches/wined3d-CSMT_Main/0169-wined3d-Only-discard-buffers-that-are-in-use.patch diff --git a/patches/wined3d-CSMT_Main/0169-wined3d-Destroy-samplers-through-the-command-stream.patch b/patches/wined3d-CSMT_Main/0170-wined3d-Destroy-samplers-through-the-command-stream.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0169-wined3d-Destroy-samplers-through-the-command-stream.patch rename to patches/wined3d-CSMT_Main/0170-wined3d-Destroy-samplers-through-the-command-stream.patch diff --git a/patches/wined3d-CSMT_Main/0170-wined3d-Hack-to-reject-unsupported-color-fills.patch b/patches/wined3d-CSMT_Main/0171-wined3d-Hack-to-reject-unsupported-color-fills.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0170-wined3d-Hack-to-reject-unsupported-color-fills.patch rename to patches/wined3d-CSMT_Main/0171-wined3d-Hack-to-reject-unsupported-color-fills.patch diff --git a/patches/wined3d-CSMT_Main/0171-wined3d-Alloc-the-buffer-map-array-before-mapping-th.patch b/patches/wined3d-CSMT_Main/0172-wined3d-Alloc-the-buffer-map-array-before-mapping-th.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0171-wined3d-Alloc-the-buffer-map-array-before-mapping-th.patch rename to patches/wined3d-CSMT_Main/0172-wined3d-Alloc-the-buffer-map-array-before-mapping-th.patch diff --git a/patches/wined3d-CSMT_Main/0172-wined3d-Send-update_sub_resource-calls-through-the-c.patch b/patches/wined3d-CSMT_Main/0173-wined3d-Send-update_sub_resource-calls-through-the-c.patch similarity index 100% rename from patches/wined3d-CSMT_Main/0172-wined3d-Send-update_sub_resource-calls-through-the-c.patch rename to patches/wined3d-CSMT_Main/0173-wined3d-Send-update_sub_resource-calls-through-the-c.patch diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index fa3dd19b..ba93071a 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -666,7 +666,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c HeapFree(GetProcessHeap(), 0, context->fbo_key); HeapFree(GetProcessHeap(), 0, context->draw_buffers); HeapFree(GetProcessHeap(), 0, context->blit_targets); -@@ -2360,6 +2366,7 @@ +@@ -2360,10 +2366,33 @@ WARN("Depth stencil format is not supported by WGL, rendering the backbuffer in an FBO\n"); /* The currently active context is the necessary context to access the swapchain's onscreen buffers */ @@ -674,10 +674,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c wined3d_resource_load_location(&context->current_rt->resource, context, WINED3D_LOCATION_TEXTURE_RGB); swapchain->render_to_fbo = TRUE; swapchain_update_draw_bindings(swapchain); -@@ -2374,6 +2381,22 @@ - return context_generate_rt_mask_from_surface(rt); - else - return context_generate_rt_mask(context->offscreenBuffer); + context_set_render_offscreen(context, TRUE); +#else /* STAGING_CSMT */ + surface_load_location(context->current_rt, context, WINED3D_LOCATION_TEXTURE_RGB); + swapchain->render_to_fbo = TRUE; @@ -685,31 +682,37 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c + context_set_render_offscreen(context, TRUE); +} + -+static DWORD context_generate_rt_mask_no_fbo(const struct wined3d_device *device, const struct wined3d_surface *rt) ++GLenum context_get_offscreen_gl_buffer(const struct wined3d_context *context) +{ -+ if (!rt || rt->resource.format->id == WINED3DFMT_NULL) -+ return 0; -+ else if (rt->container->swapchain) -+ return context_generate_rt_mask_from_surface(rt); -+ else -+ return context_generate_rt_mask(device->offscreenBuffer); ++ switch (wined3d_settings.offscreen_rendering_mode) ++ { ++ case ORM_FBO: ++ return GL_COLOR_ATTACHMENT0; ++ ++ case ORM_BACKBUFFER: ++ return context->aux_buffers > 0 ? GL_AUX0 : GL_BACK; ++ ++ default: ++ FIXME("Unhandled offscreen rendering mode %#x.\n", wined3d_settings.offscreen_rendering_mode); ++ return GL_BACK; ++ } ++#endif /* STAGING_CSMT */ + } + + static DWORD context_generate_rt_mask_no_fbo(const struct wined3d_context *context, const struct wined3d_surface *rt) +@@ -2373,7 +2402,11 @@ + else if (rt->container->swapchain) + return context_generate_rt_mask_from_surface(rt); + else ++#if defined(STAGING_CSMT) + return context_generate_rt_mask(context->offscreenBuffer); ++#else /* STAGING_CSMT */ ++ return context_generate_rt_mask(context_get_offscreen_gl_buffer(context)); +#endif /* STAGING_CSMT */ } /* Context activation is done by the caller. */ -@@ -2405,7 +2428,11 @@ - } - else - { -+#if defined(STAGING_CSMT) - rt_mask = context_generate_rt_mask_no_fbo(context, rt); -+#else /* STAGING_CSMT */ -+ rt_mask = context_generate_rt_mask_no_fbo(device, rt); -+#endif /* STAGING_CSMT */ - } - - cur_mask = context->current_fbo ? &context->current_fbo->rt_mask : &context->draw_buffers_mask; -@@ -2452,7 +2479,11 @@ +@@ -2452,7 +2485,11 @@ DWORD rt_mask = 0, *cur_mask; UINT i; @@ -721,64 +724,30 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c || rt_count != context->gl_info->limits.buffers) { if (!context_validate_rt_config(rt_count, rts, dsv)) -@@ -2494,11 +2525,17 @@ - } - else - { -+#if defined(STAGING_CSMT) +@@ -2497,8 +2534,10 @@ rt_mask = context_generate_rt_mask_no_fbo(context, rt_count ? wined3d_rendertarget_view_get_surface(rts[0]) : NULL); } ++#if defined(STAGING_CSMT) wined3d_fb_copy(&context->current_fb, fb); -+#else /* STAGING_CSMT */ -+ rt_mask = context_generate_rt_mask_no_fbo(device, -+ rt_count ? wined3d_rendertarget_view_get_surface(rts[0]) : NULL); -+ } +#endif /* STAGING_CSMT */ } else if (wined3d_settings.offscreen_rendering_mode == ORM_FBO && (!rt_count || wined3d_resource_is_offscreen(rts[0]->resource))) -@@ -2511,7 +2548,11 @@ - } - else - { -+#if defined(STAGING_CSMT) - rt_mask = context_generate_rt_mask_no_fbo(context, -+#else /* STAGING_CSMT */ -+ rt_mask = context_generate_rt_mask_no_fbo(device, -+#endif /* STAGING_CSMT */ - rt_count ? wined3d_rendertarget_view_get_surface(rts[0]) : NULL); - } +@@ -2557,7 +2596,11 @@ -@@ -2555,6 +2596,7 @@ - return TRUE; - } - -+#if defined(STAGING_CSMT) static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const struct wined3d_state *state) { ++#if defined(STAGING_CSMT) struct wined3d_rendertarget_view **rts = state->fb.render_targets; -@@ -2564,6 +2606,18 @@ - - if (wined3d_settings.offscreen_rendering_mode != ORM_FBO) - return context_generate_rt_mask_no_fbo(context, wined3d_rendertarget_view_get_surface(rts[0])); +#else /* STAGING_CSMT */ -+static DWORD find_draw_buffers_mask(const struct wined3d_context *context, const struct wined3d_device *device) -+{ -+ const struct wined3d_state *state = &device->state; + struct wined3d_rendertarget_view **rts = state->fb->render_targets; -+ struct wined3d_shader *ps = state->shader[WINED3D_SHADER_TYPE_PIXEL]; -+ DWORD rt_mask, rt_mask_bits; -+ unsigned int i; -+ -+ if (wined3d_settings.offscreen_rendering_mode != ORM_FBO) -+ return context_generate_rt_mask_no_fbo(device, wined3d_rendertarget_view_get_surface(rts[0])); +#endif /* STAGING_CSMT */ - else if (!context->render_offscreen) - return context_generate_rt_mask_from_surface(wined3d_rendertarget_view_get_surface(rts[0])); - -@@ -2586,8 +2640,14 @@ + struct wined3d_shader *ps = state->shader[WINED3D_SHADER_TYPE_PIXEL]; + DWORD rt_mask, rt_mask_bits; + unsigned int i; +@@ -2586,8 +2629,13 @@ /* Context activation is done by the caller. */ void context_state_fb(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) { @@ -786,14 +755,13 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c const struct wined3d_fb_state *fb = &state->fb; DWORD rt_mask = find_draw_buffers_mask(context, state); +#else /* STAGING_CSMT */ -+ const struct wined3d_device *device = context->swapchain->device; ++ DWORD rt_mask = find_draw_buffers_mask(context, state); + const struct wined3d_fb_state *fb = state->fb; -+ DWORD rt_mask = find_draw_buffers_mask(context, device); +#endif /* STAGING_CSMT */ DWORD *cur_mask; if (wined3d_settings.offscreen_rendering_mode == ORM_FBO) -@@ -2618,8 +2678,10 @@ +@@ -2618,8 +2666,10 @@ context_apply_draw_buffers(context, rt_mask); *cur_mask = rt_mask; } @@ -804,30 +772,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c } static void context_map_stage(struct wined3d_context *context, DWORD stage, DWORD unit) -@@ -2866,12 +2928,22 @@ - /* Context activation is done by the caller. */ - void context_state_drawbuf(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) - { -+#if defined(STAGING_CSMT) - DWORD rt_mask, *cur_mask; - - if (isStateDirty(context, STATE_FRAMEBUFFER)) return; - - cur_mask = context->current_fbo ? &context->current_fbo->rt_mask : &context->draw_buffers_mask; - rt_mask = find_draw_buffers_mask(context, state); -+#else /* STAGING_CSMT */ -+ const struct wined3d_device *device = context->swapchain->device; -+ DWORD rt_mask, *cur_mask; -+ -+ if (isStateDirty(context, STATE_FRAMEBUFFER)) return; -+ -+ cur_mask = context->current_fbo ? &context->current_fbo->rt_mask : &context->draw_buffers_mask; -+ rt_mask = find_draw_buffers_mask(context, device); -+#endif /* STAGING_CSMT */ - if (rt_mask != *cur_mask) - { - context_apply_draw_buffers(context, rt_mask); -@@ -3073,7 +3145,11 @@ +@@ -3073,7 +3123,11 @@ { if (state->vertex_declaration->half_float_conv_needed && !stream_info->all_vbo) { @@ -839,7 +784,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c context->use_immediate_mode_draw = TRUE; } else -@@ -3258,11 +3334,19 @@ +@@ -3258,11 +3312,19 @@ } /* Context activation is done by the caller. */ @@ -859,7 +804,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c unsigned int i; WORD map; -@@ -3295,12 +3379,17 @@ +@@ -3295,12 +3357,17 @@ for (i = 0, map = context->stream_info.use_map; map; map >>= 1, ++i) { if (map & 1) @@ -877,7 +822,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c } if (state->index_buffer) { -@@ -3395,7 +3484,11 @@ +@@ -3395,7 +3462,11 @@ if (texture->texture_srgb.name) wined3d_texture_load(texture, context, TRUE); wined3d_texture_load(texture, context, FALSE); @@ -2366,44 +2311,26 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (FAILED(hr = device->shader_backend->shader_alloc_private(device, device->adapter->vertex_pipe, device->adapter->fragment_pipe))) { -@@ -992,8 +1055,16 @@ +@@ -992,6 +1055,7 @@ device->swapchains[0] = swapchain; device_init_swapchain_state(device, swapchain); +#if defined(STAGING_CSMT) /* also calls create_default_sampler */ wined3d_cs_emit_create_dummy_textures(device->cs); + +@@ -1020,6 +1084,19 @@ + device->contexts[0]->offscreenBuffer = device->offscreenBuffer; + + TRACE("All defaults now set up, leaving 3D init.\n"); +#else /* STAGING_CSMT */ + context = context_acquire(device, + surface_from_resource(wined3d_texture_get_sub_resource(swapchain->front_buffer, 0))); + + create_dummy_textures(device, context); + create_default_sampler(device); -+#endif /* STAGING_CSMT */ - - device->contexts[0]->last_was_rhw = 0; - -@@ -1005,7 +1076,11 @@ - - case ORM_BACKBUFFER: - { -+#if defined(STAGING_CSMT) - if (device->contexts[0]->aux_buffers > 0) -+#else /* STAGING_CSMT */ -+ if (context_get_current()->aux_buffers > 0) -+#endif /* STAGING_CSMT */ - { - TRACE("Using auxiliary buffer for offscreen rendering\n"); - device->offscreenBuffer = GL_AUX0; -@@ -1017,9 +1092,16 @@ - } - } - } -+#if defined(STAGING_CSMT) - device->contexts[0]->offscreenBuffer = device->offscreenBuffer; - - TRACE("All defaults now set up, leaving 3D init.\n"); -+#else /* STAGING_CSMT */ ++ ++ device->contexts[0]->last_was_rhw = 0; + + TRACE("All defaults now set up, leaving 3D init.\n"); + @@ -2412,7 +2339,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c /* Clear the screen */ if (swapchain->back_buffers && swapchain->back_buffers[0]) -@@ -1036,6 +1118,9 @@ +@@ -1036,6 +1113,9 @@ return WINED3D_OK; err_out: @@ -2422,7 +2349,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c HeapFree(GetProcessHeap(), 0, device->swapchains); device->swapchain_count = 0; if (device->back_buffer_view) -@@ -1093,6 +1178,10 @@ +@@ -1093,6 +1173,10 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device) { struct wined3d_resource *resource, *cursor; @@ -2433,7 +2360,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c struct wined3d_surface *surface; UINT i; -@@ -1101,6 +1190,7 @@ +@@ -1101,6 +1185,7 @@ if (!device->d3d_initialized) return WINED3DERR_INVALIDCALL; @@ -2441,7 +2368,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (wined3d_settings.cs_multithreaded) device->cs->ops->finish(device->cs); -@@ -1139,6 +1229,83 @@ +@@ -1139,6 +1224,83 @@ /* FIXME: Is this in the right place??? */ wined3d_cs_emit_delete_opengl_contexts(device->cs, device->swapchains[0]); @@ -2525,7 +2452,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (device->back_buffer_view) { wined3d_rendertarget_view_decref(device->back_buffer_view); -@@ -1156,6 +1323,11 @@ +@@ -1156,6 +1318,11 @@ device->swapchains = NULL; device->swapchain_count = 0; @@ -2537,7 +2464,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c device->d3d_initialized = FALSE; return WINED3D_OK; -@@ -1542,6 +1714,16 @@ +@@ -1542,6 +1709,16 @@ TRACE("... Range(%f), Falloff(%f), Theta(%f), Phi(%f)\n", light->range, light->falloff, light->theta, light->phi); @@ -2554,7 +2481,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c /* Save away the information. */ object->OriginalParms = *light; -@@ -1621,9 +1803,11 @@ +@@ -1621,9 +1798,11 @@ FIXME("Unrecognized light type %#x.\n", light->type); } @@ -2566,7 +2493,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c return WINED3D_OK; } -@@ -1696,6 +1880,14 @@ +@@ -1696,6 +1875,14 @@ { if (light_info->glIndex != -1) { @@ -2581,7 +2508,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c device->update_state->lights[light_info->glIndex] = NULL; light_info->glIndex = -1; } -@@ -1737,11 +1929,23 @@ +@@ -1737,11 +1924,23 @@ WARN("Too many concurrently active lights\n"); return WINED3D_OK; } @@ -2605,7 +2532,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c return WINED3D_OK; } -@@ -1916,9 +2120,11 @@ +@@ -1916,9 +2115,11 @@ TRACE("device %p, base_index %d.\n", device, base_index); device->update_state->base_vertex_index = base_index; @@ -2617,7 +2544,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } INT CDECL wined3d_device_get_base_vertex_index(const struct wined3d_device *device) -@@ -1964,7 +2170,11 @@ +@@ -1964,7 +2165,11 @@ || !(dst_texture->resource.format_flags & WINED3DFMT_FLAG_DEPTH)) return; @@ -2629,7 +2556,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c return; if (src_view->resource->type == WINED3D_RTYPE_BUFFER) { -@@ -2299,7 +2509,11 @@ +@@ -2299,7 +2504,11 @@ return device->state.sampler[WINED3D_SHADER_TYPE_VERTEX][idx]; } @@ -2641,7 +2568,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c { UINT i; -@@ -2332,8 +2546,12 @@ +@@ -2332,8 +2541,12 @@ } else { @@ -2654,7 +2581,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } return WINED3D_OK; -@@ -2380,8 +2598,12 @@ +@@ -2380,8 +2593,12 @@ } else { @@ -2667,7 +2594,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } return WINED3D_OK; -@@ -2432,8 +2654,13 @@ +@@ -2432,8 +2649,13 @@ memset(device->recording->changed.vertexShaderConstantsF + start_register, 1, sizeof(*device->recording->changed.vertexShaderConstantsF) * vector4f_count); else @@ -2681,7 +2608,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c return WINED3D_OK; } -@@ -2568,8 +2795,12 @@ +@@ -2568,8 +2790,12 @@ } else { @@ -2694,7 +2621,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } return WINED3D_OK; -@@ -2616,8 +2847,12 @@ +@@ -2616,8 +2842,12 @@ } else { @@ -2707,7 +2634,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } return WINED3D_OK; -@@ -2669,8 +2904,12 @@ +@@ -2669,8 +2899,12 @@ memset(device->recording->changed.pixelShaderConstantsF + start_register, 1, sizeof(*device->recording->changed.pixelShaderConstantsF) * vector4f_count); else @@ -2720,7 +2647,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c return WINED3D_OK; } -@@ -2830,6 +3069,7 @@ +@@ -2830,6 +3064,7 @@ return hr; } @@ -2728,7 +2655,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (wined3d_settings.cs_multithreaded) { FIXME("Waiting for cs.\n"); -@@ -2837,6 +3077,7 @@ +@@ -2837,6 +3072,7 @@ device->cs->ops->finish(device->cs); } @@ -2736,7 +2663,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c wined3d_device_get_transform(device, WINED3D_TS_VIEW, &view_mat); wined3d_device_get_transform(device, WINED3D_TS_PROJECTION, &proj_mat); wined3d_device_get_transform(device, WINED3D_TS_WORLD_MATRIX(0), &world_mat); -@@ -3322,6 +3563,10 @@ +@@ -3322,6 +3558,10 @@ HRESULT CDECL wined3d_device_end_scene(struct wined3d_device *device) { @@ -2747,7 +2674,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c TRACE("device %p.\n", device); if (!device->inScene) -@@ -3330,6 +3575,15 @@ +@@ -3330,6 +3570,15 @@ return WINED3DERR_INVALIDCALL; } @@ -2763,7 +2690,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c device->inScene = FALSE; return WINED3D_OK; } -@@ -3337,8 +3591,10 @@ +@@ -3337,8 +3586,10 @@ HRESULT CDECL wined3d_device_clear(struct wined3d_device *device, DWORD rect_count, const RECT *rects, DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) { @@ -2774,7 +2701,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c TRACE("device %p, rect_count %u, rects %p, flags %#x, color {%.8e, %.8e, %.8e, %.8e}, depth %.8e, stencil %u.\n", device, rect_count, rects, flags, color->r, color->g, color->b, color->a, depth, stencil); -@@ -3347,12 +3603,19 @@ +@@ -3347,12 +3598,19 @@ WARN("Rects is %p, but rect_count is 0, ignoring clear\n", rects); return WINED3D_OK; } @@ -2794,7 +2721,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (!ds) { WARN("Clearing depth and/or stencil without a depth stencil buffer attached, returning WINED3DERR_INVALIDCALL\n"); -@@ -3361,8 +3624,13 @@ +@@ -3361,8 +3619,13 @@ } else if (flags & WINED3DCLEAR_TARGET) { @@ -2808,7 +2735,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c { WARN("Silently ignoring depth and target clear with mismatching sizes\n"); return WINED3D_OK; -@@ -3408,6 +3676,9 @@ +@@ -3408,6 +3671,9 @@ enum wined3d_primitive_type primitive_type) { GLenum gl_primitive_type, prev; @@ -2818,7 +2745,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c TRACE("device %p, primitive_type %s\n", device, debug_d3dprimitivetype(primitive_type)); gl_primitive_type = gl_primitive_type_from_d3d(primitive_type); -@@ -3415,8 +3686,13 @@ +@@ -3415,8 +3681,13 @@ device->update_state->gl_primitive_type = gl_primitive_type; if (device->recording) device->recording->changed.primitive_type = TRUE; @@ -2832,7 +2759,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } void CDECL wined3d_device_get_primitive_type(const struct wined3d_device *device, -@@ -3439,6 +3715,14 @@ +@@ -3439,6 +3710,14 @@ return WINED3DERR_INVALIDCALL; } @@ -2847,7 +2774,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c wined3d_cs_emit_draw(device->cs, start_vertex, vertex_count, 0, 0, FALSE); return WINED3D_OK; -@@ -3455,6 +3739,10 @@ +@@ -3455,6 +3734,10 @@ HRESULT CDECL wined3d_device_draw_indexed_primitive(struct wined3d_device *device, UINT start_idx, UINT index_count) { @@ -2858,7 +2785,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c TRACE("device %p, start_idx %u, index_count %u.\n", device, start_idx, index_count); if (!device->state.index_buffer) -@@ -3473,6 +3761,15 @@ +@@ -3473,6 +3756,15 @@ return WINED3DERR_INVALIDCALL; } @@ -2874,7 +2801,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c wined3d_cs_emit_draw(device->cs, start_idx, index_count, 0, 0, TRUE); return WINED3D_OK; -@@ -3488,6 +3785,7 @@ +@@ -3488,6 +3780,7 @@ } /* This is a helper function for UpdateTexture, there is no UpdateVolume method in D3D. */ @@ -2882,7 +2809,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c static void device_update_volume(struct wined3d_context *context, struct wined3d_volume *src_volume, struct wined3d_volume *dst_volume) { -@@ -3527,6 +3825,97 @@ +@@ -3527,6 +3820,97 @@ enum wined3d_resource_type type = src_texture->resource.type; layer_count = src_texture->layer_count; @@ -2980,21 +2907,21 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c level_count = min(wined3d_texture_get_level_count(src_texture), wined3d_texture_get_level_count(dst_texture)); -@@ -3544,7 +3933,13 @@ +@@ -3544,7 +3928,13 @@ } /* Make sure that the destination texture is loaded. */ +#if defined(STAGING_CSMT) -+ wined3d_texture_load(dst_texture, context, FALSE); + wined3d_texture_load(dst_texture, context, FALSE); +#else /* STAGING_CSMT */ + context = context_acquire(device, NULL); - wined3d_texture_load(dst_texture, context, FALSE); ++ wined3d_texture_load(dst_texture, context, FALSE); + context_release(context); +#endif /* STAGING_CSMT */ /* Update every surface level of the texture. */ switch (type) -@@ -3564,7 +3959,15 @@ +@@ -3564,7 +3954,15 @@ i * src_levels + j + src_skip_levels)); dst_surface = surface_from_resource(wined3d_texture_get_sub_resource(dst_texture, i * dst_levels + j)); @@ -3010,7 +2937,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } } break; -@@ -3574,6 +3977,7 @@ +@@ -3574,6 +3972,7 @@ { for (i = 0; i < level_count; ++i) { @@ -3018,7 +2945,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c device_update_volume(context, volume_from_resource(wined3d_texture_get_sub_resource(src_texture, i + src_skip_levels)), -@@ -3635,6 +4039,25 @@ +@@ -3635,6 +4034,25 @@ } wined3d_cs_emit_update_texture(device->cs, src_texture, dst_texture); @@ -3044,7 +2971,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c return WINED3D_OK; } -@@ -3684,8 +4107,13 @@ +@@ -3684,8 +4102,13 @@ if (state->render_states[WINED3D_RS_ZENABLE] || state->render_states[WINED3D_RS_ZWRITEENABLE] || state->render_states[WINED3D_RS_STENCILENABLE]) { @@ -3058,7 +2985,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (ds && rt && (ds->width < rt->width || ds->height < rt->height)) { -@@ -3950,7 +4378,17 @@ +@@ -3950,7 +4373,17 @@ unsigned int depth_pitch) { struct wined3d_resource *sub_resource; @@ -3076,22 +3003,22 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c TRACE("device %p, resource %p, sub_resource_idx %u, box %s, data %p, row_pitch %u, depth_pitch %u.\n", device, resource, sub_resource_idx, debug_box(box), data, row_pitch, depth_pitch); -@@ -3984,7 +4422,14 @@ +@@ -3984,7 +4417,14 @@ WARN("Invalid sub_resource_idx %u.\n", sub_resource_idx); return; } +#if defined(STAGING_CSMT) -+ + +#else /* STAGING_CSMT */ + surface = surface_from_resource(sub_resource); - ++ + src_rect.left = 0; + src_rect.top = 0; +#endif /* STAGING_CSMT */ if (box) { if (box->left >= box->right || box->right > sub_resource->width -@@ -3994,9 +4439,47 @@ +@@ -3994,9 +4434,47 @@ WARN("Invalid box %s specified.\n", debug_box(box)); return; } @@ -3139,7 +3066,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } HRESULT CDECL wined3d_device_clear_rendertarget_view(struct wined3d_device *device, -@@ -4027,8 +4510,14 @@ +@@ -4027,8 +4505,14 @@ rect = &r; } @@ -3154,7 +3081,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } struct wined3d_rendertarget_view * CDECL wined3d_device_get_rendertarget_view(const struct wined3d_device *device, -@@ -4042,6 +4531,7 @@ +@@ -4042,6 +4526,7 @@ return NULL; } @@ -3162,7 +3089,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c return device->state.fb.render_targets[view_idx]; } -@@ -4057,6 +4547,22 @@ +@@ -4057,6 +4542,22 @@ { struct wined3d_rendertarget_view *prev; struct wined3d_fb_state *fb = &device->state.fb; @@ -3185,7 +3112,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c TRACE("device %p, view_idx %u, view %p, set_viewport %#x.\n", device, view_idx, view, set_viewport); -@@ -4096,6 +4602,7 @@ +@@ -4096,6 +4597,7 @@ } @@ -3193,7 +3120,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c prev = fb->render_targets[view_idx]; if (view == prev) return WINED3D_OK; -@@ -4103,6 +4610,15 @@ +@@ -4103,6 +4605,15 @@ if (view) wined3d_rendertarget_view_incref(view); fb->render_targets[view_idx] = view; @@ -3209,7 +3136,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c wined3d_cs_emit_set_rendertarget_view(device->cs, view_idx, view); /* Release after the assignment, to prevent device_resource_released() * from seeing the surface as still in use. */ -@@ -4114,6 +4630,7 @@ +@@ -4114,6 +4625,7 @@ void CDECL wined3d_device_set_depth_stencil_view(struct wined3d_device *device, struct wined3d_rendertarget_view *view) { @@ -3217,7 +3144,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c struct wined3d_fb_state *fb = &device->state.fb; struct wined3d_rendertarget_view *prev; -@@ -4131,6 +4648,66 @@ +@@ -4131,6 +4643,66 @@ wined3d_cs_emit_set_depth_stencil_view(device->cs, view); if (prev) wined3d_rendertarget_view_decref(prev); @@ -3284,7 +3211,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } HRESULT CDECL wined3d_device_set_cursor_properties(struct wined3d_device *device, -@@ -4151,6 +4728,14 @@ +@@ -4151,6 +4723,14 @@ cursor_image = surface_from_resource(sub_resource); @@ -3299,7 +3226,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (cursor_image->resource.format->id != WINED3DFMT_B8G8R8A8_UNORM) { WARN("Surface %p has an invalid format %s.\n", -@@ -4178,6 +4763,13 @@ +@@ -4178,6 +4758,13 @@ * release it after setting the cursor image. Windows doesn't * addref the set surface, so we can't do this either without * creating circular refcount dependencies. */ @@ -3313,7 +3240,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (cursor_image->resource.width == 32 && cursor_image->resource.height == 32) { -@@ -4282,6 +4874,12 @@ +@@ -4282,6 +4869,12 @@ else SetCursor(NULL); } @@ -3326,7 +3253,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c return oldVisible; } -@@ -4292,8 +4890,10 @@ +@@ -4292,8 +4885,10 @@ TRACE("device %p.\n", device); @@ -3337,7 +3264,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c LIST_FOR_EACH_ENTRY_SAFE(resource, cursor, &device->resources, struct wined3d_resource, resource_list_entry) { TRACE("Checking resource %p for eviction.\n", resource); -@@ -4301,6 +4901,7 @@ +@@ -4301,6 +4896,7 @@ if (resource->pool == WINED3D_POOL_MANAGED && !resource->map_count) { TRACE("Evicting %p.\n", resource); @@ -3345,7 +3272,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c wined3d_cs_emit_evict_resource(device->cs, resource); } } -@@ -4319,6 +4920,37 @@ +@@ -4319,6 +4915,37 @@ context = context_acquire(device, NULL); gl_info = context->gl_info; @@ -3383,7 +3310,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (device->depth_blt_texture) { -@@ -4340,6 +4972,7 @@ +@@ -4340,6 +4967,7 @@ HeapFree(GetProcessHeap(), 0, swapchain->context); swapchain->context = NULL; @@ -3391,7 +3318,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c swapchain->num_contexts = 0; } -@@ -4359,6 +4992,14 @@ +@@ -4359,6 +4987,14 @@ static HRESULT create_primary_opengl_context(struct wined3d_device *device, struct wined3d_swapchain *swapchain) { @@ -3406,7 +3333,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c HRESULT hr; if (FAILED(hr = device->shader_backend->shader_alloc_private(device, -@@ -4375,6 +5016,7 @@ +@@ -4375,6 +5011,7 @@ return hr; } @@ -3414,7 +3341,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c hr = wined3d_cs_emit_create_swapchain_context(device->cs, swapchain); if (FAILED(hr)) { -@@ -4385,6 +5027,35 @@ +@@ -4385,6 +5022,35 @@ } wined3d_cs_emit_create_dummy_textures(device->cs); @@ -3450,7 +3377,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c return WINED3D_OK; } -@@ -4404,9 +5075,11 @@ +@@ -4404,9 +5070,11 @@ TRACE("device %p, swapchain_desc %p, mode %p, callback %p, reset_state %#x.\n", device, swapchain_desc, mode, callback, reset_state); @@ -3462,7 +3389,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (!(swapchain = wined3d_device_get_swapchain(device, 0))) { ERR("Failed to get the first implicit swapchain.\n"); -@@ -4421,9 +5094,21 @@ +@@ -4421,9 +5089,21 @@ wined3d_texture_decref(device->logo_texture); device->logo_texture = NULL; } @@ -3484,7 +3411,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c { for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i) { -@@ -4432,6 +5117,7 @@ +@@ -4432,6 +5112,7 @@ } wined3d_device_set_depth_stencil_view(device, NULL); @@ -3492,7 +3419,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (reset_state) { state_unbind_resources(&device->state); -@@ -4441,6 +5127,12 @@ +@@ -4441,6 +5122,12 @@ { wined3d_texture_decref(device->cs->onscreen_depth_stencil->container); device->cs->onscreen_depth_stencil = NULL; @@ -3505,7 +3432,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } if (reset_state) -@@ -4453,6 +5145,7 @@ +@@ -4453,6 +5140,7 @@ } } @@ -3513,7 +3440,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c /* Free implicit resources and wait for the command stream before modifying * swapchain parameters. After modifying the swapchain parameters a new GL * context may be acquired by the worker thread. This causes problems in the -@@ -4474,6 +5167,7 @@ +@@ -4474,6 +5162,7 @@ } device->cs->ops->finish(device->cs); @@ -3521,7 +3448,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c TRACE("New params:\n"); TRACE("backbuffer_width %u\n", swapchain_desc->backbuffer_width); TRACE("backbuffer_height %u\n", swapchain_desc->backbuffer_height); -@@ -4600,6 +5294,13 @@ +@@ -4600,6 +5289,13 @@ swapchain_desc->multisample_type, swapchain_desc->multisample_quality))) return hr; @@ -3535,7 +3462,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (swapchain->desc.enable_auto_depth_stencil) { struct wined3d_resource_desc texture_desc; -@@ -4641,6 +5342,13 @@ +@@ -4641,6 +5337,13 @@ wined3d_device_set_depth_stencil_view(device, device->auto_depth_stencil_view); } @@ -3549,7 +3476,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (swapchain->desc.backbuffer_count) { view_desc.format_id = swapchain_desc->backbuffer_format; -@@ -4667,12 +5375,20 @@ +@@ -4667,12 +5370,20 @@ } wined3d_cs_emit_reset_state(device->cs); state_cleanup(&device->state); @@ -3570,7 +3497,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c &device->adapter->d3d_info, WINED3D_STATE_INIT_DEFAULT))) ERR("Failed to initialize device state, hr %#x.\n", hr); device->update_state = &device->state; -@@ -4681,6 +5397,7 @@ +@@ -4681,6 +5392,7 @@ } else if (device->back_buffer_view) { @@ -3578,7 +3505,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c struct wined3d_state *state = &device->state; wined3d_device_set_rendertarget_view(device, 0, device->back_buffer_view, FALSE); -@@ -4696,6 +5413,24 @@ +@@ -4696,6 +5408,24 @@ state->scissor_rect.left = 0; state->scissor_rect.right = swapchain->desc.backbuffer_width; state->scissor_rect.bottom = swapchain->desc.backbuffer_height; @@ -3603,7 +3530,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c wined3d_cs_emit_set_scissor_rect(device->cs, &state->scissor_rect); } -@@ -4778,6 +5513,10 @@ +@@ -4778,6 +5508,10 @@ TRACE("device %p, resource %p, type %s.\n", device, resource, debug_d3dresourcetype(type)); @@ -3614,7 +3541,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c switch (type) { case WINED3D_RTYPE_SURFACE: -@@ -4788,6 +5527,7 @@ +@@ -4788,6 +5522,7 @@ for (i = 0; i < device->adapter->gl_info.limits.buffers; ++i) { @@ -3622,7 +3549,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (wined3d_rendertarget_view_get_surface(device->state.fb.render_targets[i]) == surface) { ERR("Surface %p is still in use as render target %u.\n", surface, i); -@@ -4799,6 +5539,19 @@ +@@ -4799,6 +5534,19 @@ { ERR("Surface %p is still in use as depth/stencil buffer.\n", surface); device->state.fb.depth_stencil = NULL; @@ -3642,7 +3569,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } } break; -@@ -4934,7 +5687,11 @@ +@@ -4934,7 +5682,11 @@ device->blitter = adapter->blitter; @@ -3654,7 +3581,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c &adapter->d3d_info, WINED3D_STATE_INIT_DEFAULT))) { ERR("Failed to initialize device state, hr %#x.\n", hr); -@@ -5033,6 +5790,7 @@ +@@ -5033,6 +5785,7 @@ else return CallWindowProcA(proc, window, message, wparam, lparam); } @@ -3662,7 +3589,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c /* Context activation is done by the caller */ struct wined3d_gl_bo *wined3d_device_get_bo(struct wined3d_device *device, UINT size, GLenum gl_usage, -@@ -5086,3 +5844,4 @@ +@@ -5086,3 +5839,4 @@ wined3d_device_destroy_bo(device, context, bo); } @@ -5877,7 +5804,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c if (box) { surface->lockedRect.left = box->left; -@@ -2404,24 +2915,143 @@ +@@ -2404,26 +2915,149 @@ struct wined3d_bo_address data; wined3d_resource_get_memory(&surface->resource, dst_location, &data); @@ -6032,9 +5959,15 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c + /* Mapping the primary render target which is not on a swapchain. + * Read from the back buffer. */ TRACE("Mapping offscreen render target.\n"); ++#if defined(STAGING_CSMT) gl_info->gl_ops.gl.p_glReadBuffer(device->offscreenBuffer); ++#else /* STAGING_CSMT */ ++ gl_info->gl_ops.gl.p_glReadBuffer(context_get_offscreen_gl_buffer(context)); ++#endif /* STAGING_CSMT */ srcIsUpsideDown = TRUE; -@@ -2442,7 +3072,11 @@ + } + else +@@ -2442,7 +3076,11 @@ checkGLcall("glBindBuffer"); } @@ -6046,7 +5979,31 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c /* Setup pixel store pack state -- to glReadPixels into the correct place */ gl_info->gl_ops.gl.p_glPixelStorei(GL_PACK_ROW_LENGTH, row_pitch / surface->resource.format->byte_count); -@@ -2707,8 +3341,13 @@ +@@ -2529,7 +3167,11 @@ + TRACE("Reading back offscreen render target %p.\n", surface); + + if (wined3d_resource_is_offscreen(&surface->container->resource)) ++#if defined(STAGING_CSMT) + gl_info->gl_ops.gl.p_glReadBuffer(device->offscreenBuffer); ++#else /* STAGING_CSMT */ ++ gl_info->gl_ops.gl.p_glReadBuffer(context_get_offscreen_gl_buffer(context)); ++#endif /* STAGING_CSMT */ + else + gl_info->gl_ops.gl.p_glReadBuffer(surface_get_gl_buffer(surface)); + checkGLcall("glReadBuffer"); +@@ -2634,7 +3276,11 @@ + { + TRACE("Reading from an offscreen target\n"); + upsidedown = !upsidedown; ++#if defined(STAGING_CSMT) + gl_info->gl_ops.gl.p_glReadBuffer(device->offscreenBuffer); ++#else /* STAGING_CSMT */ ++ gl_info->gl_ops.gl.p_glReadBuffer(context_get_offscreen_gl_buffer(context)); ++#endif /* STAGING_CSMT */ + } + else + { +@@ -2707,8 +3353,13 @@ /* The texture is now most up to date - If the surface is a render target * and has a drawable, this path is never entered. */ @@ -6060,7 +6017,40 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } /* Uses the hardware to stretch and flip the image */ -@@ -2776,7 +3415,11 @@ +@@ -2723,6 +3374,9 @@ + const struct wined3d_gl_info *gl_info; + struct wined3d_context *context; + GLenum drawBuffer = GL_BACK; ++#if !defined(STAGING_CSMT) ++ GLenum offscreen_buffer; ++#endif /* STAGING_CSMT */ + GLenum texture_target; + BOOL noBackBufferBackup; + BOOL src_offscreen; +@@ -2736,6 +3390,10 @@ + context_apply_blit_state(context, device); + wined3d_texture_load(dst_surface->container, context, FALSE); + ++#if !defined(STAGING_CSMT) ++ offscreen_buffer = context_get_offscreen_gl_buffer(context); ++ ++#endif /* STAGING_CSMT */ + src_offscreen = wined3d_resource_is_offscreen(&src_surface->container->resource); + noBackBufferBackup = src_offscreen && wined3d_settings.offscreen_rendering_mode == ORM_FBO; + if (!noBackBufferBackup && !src_surface->container->texture_rgb.name) +@@ -2752,7 +3410,11 @@ + /* Got more than one aux buffer? Use the 2nd aux buffer */ + drawBuffer = GL_AUX1; + } ++#if defined(STAGING_CSMT) + else if ((!src_offscreen || device->offscreenBuffer == GL_BACK) && context->aux_buffers >= 1) ++#else /* STAGING_CSMT */ ++ else if ((!src_offscreen || offscreen_buffer == GL_BACK) && context->aux_buffers >= 1) ++#endif /* STAGING_CSMT */ + { + /* Only one aux buffer, but it isn't used (Onscreen rendering, or non-aux orm)? Use it! */ + drawBuffer = GL_AUX0; +@@ -2776,7 +3438,11 @@ checkGLcall("glEnable(texture_target)"); /* For now invalidate the texture copy of the back buffer. Drawable and sysmem copy are untouched */ @@ -6072,7 +6062,19 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } /* Make sure that the top pixel is always above the bottom pixel, and keep a separate upside down flag -@@ -2973,6 +3616,7 @@ +@@ -2793,7 +3459,11 @@ + { + TRACE("Reading from an offscreen target\n"); + upsidedown = !upsidedown; ++#if defined(STAGING_CSMT) + gl_info->gl_ops.gl.p_glReadBuffer(device->offscreenBuffer); ++#else /* STAGING_CSMT */ ++ gl_info->gl_ops.gl.p_glReadBuffer(offscreen_buffer); ++#endif /* STAGING_CSMT */ + } + else + { +@@ -2973,6 +3643,7 @@ checkGLcall("glDeleteTextures(1, &backup)"); } @@ -6080,7 +6082,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c if (wined3d_settings.cs_multithreaded) gl_info->gl_ops.gl.p_glFinish(); else if (wined3d_settings.strict_draw_ordering) -@@ -2984,6 +3628,17 @@ +@@ -2984,6 +3655,17 @@ * and has a drawable, this path is never entered. */ wined3d_resource_validate_location(&dst_surface->resource, WINED3D_LOCATION_TEXTURE_RGB); wined3d_resource_invalidate_location(&dst_surface->resource, ~WINED3D_LOCATION_TEXTURE_RGB); @@ -6098,7 +6100,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } /* Front buffer coordinates are always full screen coordinates, but our GL -@@ -3038,9 +3693,15 @@ +@@ -3038,9 +3720,15 @@ gl_info = context->gl_info; @@ -6114,7 +6116,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c wined3d_texture_load(src_surface->container, context, FALSE); /* Activate the destination context, set it up for blitting */ -@@ -3083,9 +3744,13 @@ +@@ -3083,9 +3771,13 @@ /* Leave the opengl state valid for blitting */ device->blitter->unset_shader(context->gl_info); @@ -6128,7 +6130,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c || (dst_surface->container->swapchain && dst_surface->container->swapchain->front_buffer == dst_surface->container)) gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */ -@@ -3098,8 +3763,13 @@ +@@ -3098,8 +3790,13 @@ { struct wined3d_resource *resource = &s->container->resource; struct wined3d_device *device = resource->device; @@ -6142,7 +6144,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c const struct blit_shader *blitter; HRESULT hr; -@@ -3110,6 +3780,7 @@ +@@ -3110,6 +3807,7 @@ return WINED3DERR_INVALIDCALL; } @@ -6150,7 +6152,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c /* Can't incref / decref the resource here. This is executed inside the worker * thread. Playing with the refcount here makes the worker thread visible to * the client lib. Problems occur when the worker thread happens to hold the -@@ -3126,6 +3797,21 @@ +@@ -3126,6 +3824,21 @@ view.sub_resource_idx = s->texture_layer * texture->level_count + s->texture_level; hr = blitter->color_fill(device, &view, rect, color); @@ -6172,7 +6174,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c return hr; } -@@ -3135,8 +3821,13 @@ +@@ -3135,8 +3848,13 @@ const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter) { struct wined3d_device *device = dst_surface->resource.device; @@ -6186,7 +6188,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c TRACE("dst_surface %p, dst_rect %s, src_surface %p, src_rect %s, flags %#x, fx %p, filter %s.\n", dst_surface, wine_dbgstr_rect(dst_rect), src_surface, wine_dbgstr_rect(src_rect), -@@ -3327,6 +4018,7 @@ +@@ -3327,6 +4045,7 @@ { TRACE("surface %p, new location %#x, w %u, h %u.\n", surface, location, w, h); @@ -6194,7 +6196,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c if (((surface->resource.locations & WINED3D_LOCATION_TEXTURE_RGB) && !(location & WINED3D_LOCATION_TEXTURE_RGB)) || (!(surface->resource.locations & WINED3D_LOCATION_TEXTURE_RGB) && (location & WINED3D_LOCATION_TEXTURE_RGB))) -@@ -3335,6 +4027,15 @@ +@@ -3335,6 +4054,15 @@ surface->ds_current_size.cx = w; surface->ds_current_size.cy = h; surface->resource.locations = location; @@ -6210,7 +6212,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } /* Context activation is done by the caller. */ -@@ -3349,7 +4050,11 @@ +@@ -3349,7 +4077,11 @@ /* TODO: Make this work for modes other than FBO */ if (wined3d_settings.offscreen_rendering_mode != ORM_FBO) return; @@ -6222,7 +6224,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c { w = surface->ds_current_size.cx; h = surface->ds_current_size.cy; -@@ -3376,6 +4081,7 @@ +@@ -3376,6 +4108,7 @@ } wined3d_surface_prepare(surface, context, location); @@ -6230,7 +6232,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c if (surface->resource.locations & WINED3D_LOCATION_DISCARDED) { TRACE("Surface was discarded, no need copy data.\n"); -@@ -3390,6 +4096,22 @@ +@@ -3390,6 +4123,22 @@ { FIXME("No up to date depth stencil location.\n"); surface->resource.locations |= location; @@ -6253,7 +6255,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c surface->ds_current_size.cx = surface->resource.width; surface->ds_current_size.cy = surface->resource.height; return; -@@ -3453,9 +4175,13 @@ +@@ -3453,9 +4202,13 @@ context_invalidate_state(context, STATE_FRAMEBUFFER); @@ -6267,7 +6269,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */ } else if (location == WINED3D_LOCATION_DRAWABLE) -@@ -3471,9 +4197,13 @@ +@@ -3471,9 +4224,13 @@ context_invalidate_state(context, STATE_FRAMEBUFFER); @@ -6281,7 +6283,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */ } else -@@ -3481,6 +4211,7 @@ +@@ -3481,6 +4238,7 @@ ERR("Invalid location (%#x) specified.\n", location); } @@ -6289,7 +6291,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c surface->resource.locations |= location; surface->ds_current_size.cx = surface->resource.width; surface->ds_current_size.cy = surface->resource.height; -@@ -3513,6 +4244,124 @@ +@@ -3513,6 +4271,124 @@ FIXME("Can't load surface %p with location flags %s into sysmem.\n", surface, wined3d_debug_location(surface->resource.locations)); @@ -6414,7 +6416,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } /* Context activation is done by the caller. */ -@@ -3521,12 +4370,14 @@ +@@ -3521,12 +4397,14 @@ { RECT r; @@ -6429,7 +6431,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c if (wined3d_settings.offscreen_rendering_mode == ORM_FBO && wined3d_resource_is_offscreen(&surface->container->resource)) { -@@ -3535,7 +4386,11 @@ +@@ -3535,7 +4413,11 @@ } surface_get_rect(surface, NULL, &r); @@ -6441,7 +6443,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c surface_blt_to_drawable(surface->resource.device, context, WINED3D_TEXF_POINT, FALSE, surface, &r, surface, &r); -@@ -3545,7 +4400,11 @@ +@@ -3545,7 +4427,11 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface, struct wined3d_context *context, BOOL srgb) { @@ -6453,7 +6455,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c const RECT src_rect = {0, 0, surface->resource.width, surface->resource.height}; const struct wined3d_gl_info *gl_info = context->gl_info; struct wined3d_device *device = surface->resource.device; -@@ -3555,6 +4414,7 @@ +@@ -3555,6 +4441,7 @@ struct wined3d_format format; POINT dst_point = {0, 0}; BYTE *mem = NULL; @@ -6461,7 +6463,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c const DWORD simple_locations = WINED3D_LOCATION_SYSMEM | WINED3D_LOCATION_USER_MEMORY | WINED3D_LOCATION_DIB | WINED3D_LOCATION_BUFFER; -@@ -3576,6 +4436,19 @@ +@@ -3576,6 +4463,19 @@ } if (surface->resource.locations & (WINED3D_LOCATION_TEXTURE_SRGB | WINED3D_LOCATION_TEXTURE_RGB) @@ -6481,7 +6483,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c && (surface->container->resource.format_flags & WINED3DFMT_FLAG_FBO_ATTACHABLE_SRGB) && fbo_blit_supported(gl_info, WINED3D_BLIT_OP_COLOR_BLIT, NULL, surface->resource.usage, surface->resource.pool, surface->resource.format, -@@ -3591,6 +4464,7 @@ +@@ -3591,6 +4491,7 @@ return WINED3D_OK; } @@ -6489,7 +6491,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c if (surface->resource.locations & (WINED3D_LOCATION_RB_MULTISAMPLE | WINED3D_LOCATION_RB_RESOLVED) && (!srgb || (surface->container->resource.format_flags & WINED3DFMT_FLAG_FBO_ATTACHABLE_SRGB)) && fbo_blit_supported(gl_info, WINED3D_BLIT_OP_COLOR_BLIT, -@@ -3598,6 +4472,15 @@ +@@ -3598,6 +4499,15 @@ NULL, surface->resource.usage, surface->resource.pool, surface->resource.format)) { DWORD src_location = surface->resource.locations & WINED3D_LOCATION_RB_RESOLVED ? @@ -6505,7 +6507,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c WINED3D_LOCATION_RB_RESOLVED : WINED3D_LOCATION_RB_MULTISAMPLE; DWORD dst_location = srgb ? WINED3D_LOCATION_TEXTURE_SRGB : WINED3D_LOCATION_TEXTURE_RGB; RECT rect = {0, 0, surface->resource.width, surface->resource.height}; -@@ -3612,6 +4495,7 @@ +@@ -3612,6 +4522,7 @@ if (srgb) { @@ -6513,7 +6515,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c if ((surface->resource.locations & (WINED3D_LOCATION_TEXTURE_RGB | surface->resource.map_binding)) == WINED3D_LOCATION_TEXTURE_RGB) { -@@ -3644,6 +4528,40 @@ +@@ -3644,6 +4555,40 @@ wined3d_texture_prepare_texture(texture, context, srgb); wined3d_texture_bind_and_dirtify(texture, context, srgb); wined3d_resource_get_pitch(&surface->resource, &src_row_pitch, &src_slice_pitch); @@ -6554,7 +6556,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c width = surface->resource.width; -@@ -3654,7 +4572,11 @@ +@@ -3654,7 +4599,11 @@ /* 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. */ @@ -6566,7 +6568,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c { TRACE("Removing the pbo attached to surface %p.\n", surface); -@@ -3663,6 +4585,7 @@ +@@ -3663,6 +4612,7 @@ else surface->resource.map_binding = WINED3D_LOCATION_SYSMEM; @@ -6574,7 +6576,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c wined3d_resource_prepare_map_memory(&surface->resource, context); wined3d_resource_load_location(&surface->resource, context, surface->resource.map_binding); wined3d_resource_free_bo(&surface->resource); -@@ -3687,6 +4610,31 @@ +@@ -3687,6 +4637,31 @@ format.convert(data.addr, mem, src_row_pitch, src_slice_pitch, dst_pitch, dst_pitch * height, width, height, 1); src_row_pitch = dst_pitch; @@ -6606,7 +6608,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c data.addr = mem; } else if (conversion) -@@ -3695,6 +4643,7 @@ +@@ -3695,6 +4670,7 @@ struct wined3d_palette *palette = NULL; UINT height = surface->resource.height; @@ -6614,7 +6616,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c dst_pitch = wined3d_format_calculate_pitch(&format, width); dst_pitch = (dst_pitch + device->surface_alignment - 1) & ~(device->surface_alignment - 1); -@@ -3709,6 +4658,22 @@ +@@ -3709,6 +4685,22 @@ conversion->convert(data.addr, src_row_pitch, mem, dst_pitch, width, height, palette, &texture->async.gl_color_key); src_row_pitch = dst_pitch; @@ -6637,7 +6639,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c data.addr = mem; } -@@ -3727,11 +4692,19 @@ +@@ -3727,11 +4719,19 @@ const RECT rect = {0, 0, surface->resource.width, surface->resource.height}; DWORD src_location; @@ -6657,7 +6659,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c src_location = WINED3D_LOCATION_TEXTURE_SRGB; else /* surface_blt_fbo will load the source location if necessary. */ src_location = WINED3D_LOCATION_TEXTURE_RGB; -@@ -3740,11 +4713,17 @@ +@@ -3740,11 +4740,17 @@ surface, src_location, &rect, surface, dst_location, &rect); } @@ -6675,7 +6677,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c HRESULT hr; TRACE("surface %p, location %s.\n", surface, wined3d_debug_location(location)); -@@ -3752,6 +4731,7 @@ +@@ -3752,6 +4758,7 @@ if (surface->resource.usage & WINED3DUSAGE_DEPTHSTENCIL) { if (location == WINED3D_LOCATION_TEXTURE_RGB @@ -6683,7 +6685,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c && surface->resource.locations & (WINED3D_LOCATION_DRAWABLE | WINED3D_LOCATION_DISCARDED)) { surface_load_ds_location(surface, context, location); -@@ -3775,6 +4755,45 @@ +@@ -3775,6 +4782,45 @@ { ERR("Surface %p does not have any up to date location.\n", surface); return; @@ -6729,7 +6731,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } switch (location) -@@ -3788,7 +4807,11 @@ +@@ -3788,7 +4834,11 @@ case WINED3D_LOCATION_DRAWABLE: if (FAILED(hr = surface_load_drawable(surface, context))) @@ -6741,7 +6743,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c break; case WINED3D_LOCATION_RB_RESOLVED: -@@ -3800,7 +4823,11 @@ +@@ -3800,7 +4850,11 @@ case WINED3D_LOCATION_TEXTURE_SRGB: if (FAILED(hr = surface_load_texture(surface, context, location == WINED3D_LOCATION_TEXTURE_SRGB))) @@ -6753,7 +6755,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c break; default: -@@ -3808,12 +4835,21 @@ +@@ -3808,12 +4862,21 @@ break; } @@ -6775,7 +6777,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } static HRESULT ffp_blit_alloc(struct wined3d_device *device) { return WINED3D_OK; } -@@ -3922,7 +4958,11 @@ +@@ -3922,7 +4985,11 @@ const RECT *rect, const struct wined3d_color *color) { const RECT draw_rect = {0, 0, view->width, view->height}; @@ -6787,7 +6789,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c device_clear_render_targets(device, 1, &fb, 1, rect, &draw_rect, WINED3DCLEAR_TARGET, color, 0.0f, 0); -@@ -3972,8 +5012,13 @@ +@@ -3972,8 +5039,13 @@ wined3d_texture_set_color_key(src_surface->container, WINED3D_CKEY_SRC_BLT, (old_color_key_flags & WINED3D_CKEY_SRC_BLT) ? &old_blt_key : NULL); @@ -6801,7 +6803,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } const struct blit_shader ffp_blit = { -@@ -4129,6 +5174,7 @@ +@@ -4129,6 +5201,7 @@ struct wined3d_surface *src_surface, const RECT *src_rect, DWORD flags, const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter) { @@ -6809,7 +6811,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c int bpp, srcheight, srcwidth, dstheight, dstwidth, width; const struct wined3d_format *src_format, *dst_format; unsigned int src_fmt_flags, dst_fmt_flags; -@@ -4163,6 +5209,28 @@ +@@ -4163,6 +5236,28 @@ wined3d_resource_get_pitch(&dst_surface->resource, &dst_row_pitch, &dst_slice_pitch); src_data = dst_data; src_row_pitch = dst_row_pitch; @@ -6838,7 +6840,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c src_format = dst_surface->resource.format; dst_format = src_format; dst_fmt_flags = dst_surface->container->resource.format_flags; -@@ -4174,12 +5242,14 @@ +@@ -4174,12 +5269,14 @@ dst_fmt_flags = dst_surface->container->resource.format_flags; if (src_surface) { @@ -6853,7 +6855,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c if (dst_surface->resource.format->id != src_surface->resource.format->id) { if (!(src_texture = surface_convert_format(src_surface, dst_format->id))) -@@ -4190,9 +5260,13 @@ +@@ -4190,9 +5287,13 @@ } src_surface = surface_from_resource(wined3d_texture_get_sub_resource(src_texture, 0)); } @@ -6867,7 +6869,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c src_format = src_surface->resource.format; src_fmt_flags = src_surface->container->resource.format_flags; } -@@ -4202,8 +5276,12 @@ +@@ -4202,8 +5303,12 @@ src_fmt_flags = dst_fmt_flags; } @@ -6880,7 +6882,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } bpp = dst_surface->resource.format->byte_count; -@@ -4214,12 +5292,24 @@ +@@ -4214,12 +5319,24 @@ width = (dst_rect->right - dst_rect->left) * bpp; if (src_surface) @@ -6905,7 +6907,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c if (src_fmt_flags & dst_fmt_flags & WINED3DFMT_FLAG_BLOCKS) { -@@ -4254,7 +5344,11 @@ +@@ -4254,7 +5371,11 @@ } hr = surface_cpu_blt_compressed(sbase, dbuf, @@ -6917,7 +6919,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c src_format, flags, fx); goto release; } -@@ -4262,7 +5356,11 @@ +@@ -4262,7 +5383,11 @@ /* First, all the 'source-less' blits */ if (flags & WINED3D_BLT_COLOR_FILL) { @@ -6929,7 +6931,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c flags &= ~WINED3D_BLT_COLOR_FILL; } -@@ -4307,6 +5405,7 @@ +@@ -4307,6 +5432,7 @@ for (y = 0; y < dstheight; ++y) { memcpy(dbuf, sbuf, width); @@ -6937,7 +6939,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c sbuf += src_row_pitch; dbuf += dst_row_pitch; } -@@ -4320,6 +5419,21 @@ +@@ -4320,6 +5446,21 @@ { sbuf -= src_row_pitch; dbuf -= dst_row_pitch; @@ -6959,7 +6961,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c memcpy(dbuf, sbuf, width); } } -@@ -4329,8 +5443,13 @@ +@@ -4329,8 +5470,13 @@ for (y = 0; y < dstheight; ++y) { memmove(dbuf, sbuf, width); @@ -6973,7 +6975,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } } } -@@ -4339,9 +5458,15 @@ +@@ -4339,9 +5485,15 @@ /* Stretching in y direction only. */ for (y = sy = 0; y < dstheight; ++y, sy += yinc) { @@ -6989,7 +6991,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } } } -@@ -4351,6 +5476,7 @@ +@@ -4351,6 +5503,7 @@ int last_sy = -1; for (y = sy = 0; y < dstheight; ++y, sy += yinc) { @@ -6997,7 +6999,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c sbuf = sbase + (sy >> 16) * src_row_pitch; if ((sy >> 16) == (last_sy >> 16)) -@@ -4358,6 +5484,15 @@ +@@ -4358,6 +5511,15 @@ /* This source row is the same as last source row - * Copy the already stretched row. */ memcpy(dbuf, dbuf - dst_row_pitch, width); @@ -7013,7 +7015,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } else { -@@ -4404,6 +5539,7 @@ +@@ -4404,6 +5566,7 @@ } #undef STRETCH_ROW } @@ -7021,7 +7023,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c dbuf += dst_row_pitch; last_sy = sy; } -@@ -4412,6 +5548,16 @@ +@@ -4412,6 +5575,16 @@ else { LONG dstyinc = dst_row_pitch, dstxinc = bpp; @@ -7038,7 +7040,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c DWORD keylow = 0xffffffff, keyhigh = 0, keymask = 0xffffffff; DWORD destkeylow = 0x0, destkeyhigh = 0xffffffff, destkeymask = 0xffffffff; if (flags & (WINED3D_BLT_SRC_CKEY | WINED3D_BLT_DST_CKEY -@@ -4463,7 +5609,11 @@ +@@ -4463,7 +5636,11 @@ LONG tmpxy; dTopLeft = dbuf; dTopRight = dbuf + ((dstwidth - 1) * bpp); @@ -7050,7 +7052,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c dBottomRight = dBottomLeft + ((dstwidth - 1) * bpp); if (fx->fx & WINEDDBLTFX_ARITHSTRETCHY) -@@ -4540,6 +5690,7 @@ +@@ -4540,6 +5717,7 @@ flags &= ~(WINED3D_BLT_FX); } @@ -7058,7 +7060,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c #define COPY_COLORKEY_FX(type) \ do { \ const type *s; \ -@@ -4561,6 +5712,29 @@ +@@ -4561,6 +5739,29 @@ d = (type *)(((BYTE *)d) + dstyinc); \ } \ } while(0) @@ -7088,7 +7090,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c switch (bpp) { -@@ -4579,7 +5753,11 @@ +@@ -4579,7 +5780,11 @@ BYTE *d = dbuf, *dx; for (y = sy = 0; y < dstheight; ++y, sy += yinc) { @@ -7100,7 +7102,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c dx = d; for (x = sx = 0; x < dstwidth; ++x, sx+= xinc) { -@@ -4610,10 +5788,12 @@ +@@ -4610,10 +5815,12 @@ } } @@ -7113,7 +7115,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c error: if (flags && FIXME_ON(d3d_surface)) { -@@ -4621,6 +5801,7 @@ +@@ -4621,6 +5828,7 @@ } release: @@ -7121,7 +7123,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c if (dst_data) { wined3d_resource_release_map_ptr(&dst_surface->resource, context); -@@ -4639,6 +5820,14 @@ +@@ -4639,6 +5847,14 @@ wined3d_texture_decref(src_texture); if (context) context_release(context); @@ -7136,7 +7138,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c return hr; } -@@ -4682,7 +5871,11 @@ +@@ -4682,7 +5898,11 @@ cpu_blit_blit_surface, }; @@ -7148,7 +7150,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c struct wined3d_surface *src_surface, const RECT *src_rect, DWORD flags, const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter) { -@@ -4700,6 +5893,79 @@ +@@ -4700,6 +5920,79 @@ | WINED3D_BLT_DO_NOT_WAIT | WINED3D_BLT_ALPHA_TEST; @@ -7228,7 +7230,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c if (!device->d3d_initialized) { WARN("D3D not initialized, using fallback.\n"); -@@ -4763,6 +6029,7 @@ +@@ -4763,6 +6056,7 @@ TRACE("Depth fill.\n"); if (!surface_convert_depth_to_float(dst_surface, fx->fill_color, &depth)) @@ -7236,7 +7238,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c return; if (SUCCEEDED(wined3d_surface_depth_fill(dst_surface, dst_rect, depth))) -@@ -4773,6 +6040,24 @@ +@@ -4773,6 +6067,24 @@ if (SUCCEEDED(wined3d_surface_depth_blt(src_surface, src_surface->container->resource.draw_binding, src_rect, dst_surface, dst_surface->container->resource.draw_binding, dst_rect))) return; @@ -7261,7 +7263,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } } else -@@ -4781,8 +6066,13 @@ +@@ -4781,8 +6093,13 @@ /* In principle this would apply to depth blits as well, but we don't * implement those in the CPU blitter at the moment. */ @@ -7275,7 +7277,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c { if (scale) TRACE("Not doing sysmem blit because of scaling.\n"); -@@ -4804,7 +6094,11 @@ +@@ -4804,7 +6121,11 @@ goto fallback; if (SUCCEEDED(surface_color_fill(dst_surface, dst_rect, &color))) @@ -7287,7 +7289,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } else { -@@ -4826,8 +6120,13 @@ +@@ -4826,8 +6147,13 @@ { blit_op = WINED3D_BLIT_OP_COLOR_BLIT_ALPHATEST; } @@ -7301,7 +7303,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c { /* Upload */ if (scale) -@@ -4843,11 +6142,18 @@ +@@ -4843,11 +6169,18 @@ if (!wined3d_resource_is_offscreen(&dst_surface->container->resource)) { struct wined3d_context *context = context_acquire(device, dst_surface); @@ -7320,7 +7322,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } } } -@@ -4871,7 +6177,11 @@ +@@ -4871,7 +6204,11 @@ wined3d_swapchain_present(dst_swapchain, NULL, NULL, dst_swapchain->win_handle, NULL, 0); dst_swapchain->desc.swap_effect = swap_effect; @@ -7332,7 +7334,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } if (fbo_blit_supported(&device->adapter->gl_info, blit_op, -@@ -4887,10 +6197,17 @@ +@@ -4887,10 +6224,17 @@ dst_surface, dst_surface->container->resource.draw_binding, dst_rect); context_release(context); @@ -7350,7 +7352,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } blitter = wined3d_select_blitter(&device->adapter->gl_info, &device->adapter->d3d_info, blit_op, -@@ -4900,6 +6217,7 @@ +@@ -4900,6 +6244,7 @@ { blitter->blit_surface(device, blit_op, filter, src_surface, src_rect, dst_surface, dst_rect, color_key); @@ -7358,7 +7360,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c return; } } -@@ -5046,6 +6364,21 @@ +@@ -5046,6 +6391,21 @@ wined3d_surface_location_invalidated, wined3d_surface_load_location, }; @@ -7380,7 +7382,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_texture *container, const struct wined3d_resource_desc *desc, GLenum target, unsigned int level, unsigned int layer, DWORD flags) -@@ -5107,7 +6440,11 @@ +@@ -5107,7 +6467,11 @@ } surface->container = container; @@ -7392,7 +7394,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c list_init(&surface->renderbuffers); list_init(&surface->overlays); -@@ -5139,9 +6476,14 @@ +@@ -5139,9 +6503,14 @@ if (surface->resource.map_binding == WINED3D_LOCATION_DIB) { wined3d_resource_free_sysmem(&surface->resource); @@ -7407,7 +7409,7 @@ diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c } return hr; -@@ -5168,7 +6510,11 @@ +@@ -5168,7 +6537,11 @@ if (FAILED(hr = surface_init(object, container, desc, target, level, layer, flags))) { WARN("Failed to initialize surface, returning %#x.\n", hr); @@ -9259,7 +9261,17 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void context_apply_fbo_state_blit(struct wined3d_context *context, GLenum target, struct wined3d_surface *render_target, struct wined3d_surface *depth_stencil, DWORD location) DECLSPEC_HIDDEN; void context_active_texture(struct wined3d_context *context, const struct wined3d_gl_info *gl_info, -@@ -2110,7 +2169,11 @@ +@@ -1539,6 +1598,9 @@ + void context_free_event_query(struct wined3d_event_query *query) DECLSPEC_HIDDEN; + void context_free_occlusion_query(struct wined3d_occlusion_query *query) DECLSPEC_HIDDEN; + struct wined3d_context *context_get_current(void) DECLSPEC_HIDDEN; ++#if !defined(STAGING_CSMT) ++GLenum context_get_offscreen_gl_buffer(const struct wined3d_context *context) DECLSPEC_HIDDEN; ++#endif /* STAGING_CSMT */ + DWORD context_get_tls_idx(void) DECLSPEC_HIDDEN; + void context_gl_resource_released(struct wined3d_device *device, + GLuint name, BOOL rb_namespace) DECLSPEC_HIDDEN; +@@ -2110,7 +2172,11 @@ struct wined3d_state { DWORD flags; @@ -9271,7 +9283,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_vertex_declaration *vertex_declaration; struct wined3d_stream_output stream_output[MAX_STREAM_OUT]; -@@ -2155,6 +2218,7 @@ +@@ -2155,6 +2221,7 @@ DWORD render_states[WINEHIGHEST_RENDER_STATE + 1]; }; @@ -9279,7 +9291,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_gl_bo { GLuint name; -@@ -2163,6 +2227,7 @@ +@@ -2163,6 +2230,7 @@ UINT size; }; @@ -9287,7 +9299,19 @@ 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 -@@ -2218,11 +2283,23 @@ +@@ -2182,9 +2250,11 @@ + LONG style; + LONG exStyle; + ++#if defined(STAGING_CSMT) + /* X and GL Information */ + GLenum offscreenBuffer; + ++#endif /* STAGING_CSMT */ + const struct wined3d_shader_backend_ops *shader_backend; + void *shader_priv; + void *fragment_priv; +@@ -2218,11 +2288,23 @@ struct wined3d_rendertarget_view *back_buffer_view; struct wined3d_swapchain **swapchains; UINT swapchain_count; @@ -9311,7 +9335,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* For rendering to a texture using glCopyTexImage */ GLuint depth_blt_texture; -@@ -2233,6 +2310,9 @@ +@@ -2233,6 +2315,9 @@ UINT xScreenSpace; UINT yScreenSpace; UINT cursorWidth, cursorHeight; @@ -9321,7 +9345,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HCURSOR hardwareCursor; /* The Wine logo texture */ -@@ -2267,6 +2347,7 @@ +@@ -2267,6 +2352,7 @@ UINT message, WPARAM wparam, LPARAM lparam, WNDPROC proc) DECLSPEC_HIDDEN; 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; @@ -9329,7 +9353,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN; void device_invalidate_shader_constants(const struct wined3d_device *device, DWORD mask) DECLSPEC_HIDDEN; void device_exec_update_texture(struct wined3d_context *context, struct wined3d_texture *src_texture, -@@ -2279,6 +2360,11 @@ +@@ -2279,6 +2365,11 @@ void device_create_default_sampler(struct wined3d_device *device); void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; @@ -9341,7 +9365,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) { -@@ -2298,9 +2384,11 @@ +@@ -2298,9 +2389,11 @@ HRESULT (*resource_sub_resource_map)(struct wined3d_resource *resource, unsigned int sub_resource_idx, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags); HRESULT (*resource_sub_resource_unmap)(struct wined3d_resource *resource, unsigned int sub_resource_idx); @@ -9353,7 +9377,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_resource -@@ -2325,6 +2413,7 @@ +@@ -2325,6 +2418,7 @@ UINT depth; UINT size; DWORD priority; @@ -9361,7 +9385,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *heap_memory, *map_heap_memory, *user_memory, *bitmap_data; UINT custom_row_pitch, custom_slice_pitch; struct wined3d_gl_bo *buffer, *map_buffer; -@@ -2332,6 +2421,10 @@ +@@ -2332,6 +2426,10 @@ DWORD locations; LONG access_fence; BOOL unmap_dirtify; @@ -9372,7 +9396,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *parent; const struct wined3d_parent_ops *parent_ops; -@@ -2356,6 +2449,7 @@ +@@ -2356,6 +2454,7 @@ void *parent, const struct wined3d_parent_ops *parent_ops, const struct wined3d_resource_ops *resource_ops) DECLSPEC_HIDDEN; void resource_unload(struct wined3d_resource *resource) DECLSPEC_HIDDEN; @@ -9380,7 +9404,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h DWORD wined3d_resource_access_from_location(DWORD location) DECLSPEC_HIDDEN; BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN; void wined3d_resource_changed(struct wined3d_resource *resource, -@@ -2404,6 +2498,15 @@ +@@ -2404,6 +2503,15 @@ { while(InterlockedCompareExchange(&resource->access_fence, 0, 0)); } @@ -9396,7 +9420,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* Tests show that the start address of resources is 32 byte aligned */ #define RESOURCE_ALIGNMENT 16 -@@ -2460,7 +2563,13 @@ +@@ -2460,7 +2568,13 @@ DWORD flags; GLenum target; @@ -9410,7 +9434,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* May only be accessed from the command stream worker thread. */ struct wined3d_texture_async -@@ -2495,11 +2604,20 @@ +@@ -2495,11 +2609,20 @@ void wined3d_texture_apply_sampler_desc(struct wined3d_texture *texture, const struct wined3d_sampler_desc *sampler_desc, const struct wined3d_context *context) DECLSPEC_HIDDEN; @@ -9431,7 +9455,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_texture_force_reload(struct wined3d_texture *texture) DECLSPEC_HIDDEN; void wined3d_texture_load(struct wined3d_texture *texture, struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN; -@@ -2527,8 +2645,15 @@ +@@ -2527,8 +2650,15 @@ struct wined3d_resource resource; struct wined3d_texture *container; @@ -9447,7 +9471,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; static inline struct wined3d_volume *volume_from_resource(struct wined3d_resource *resource) -@@ -2536,6 +2661,7 @@ +@@ -2536,6 +2666,7 @@ return CONTAINING_RECORD(resource, struct wined3d_volume, resource); } @@ -9455,7 +9479,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT wined3d_volume_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc, unsigned int level, struct wined3d_volume **volume) DECLSPEC_HIDDEN; void wined3d_volume_destroy(struct wined3d_volume *volume) DECLSPEC_HIDDEN; -@@ -2551,6 +2677,26 @@ +@@ -2551,6 +2682,26 @@ struct wined3d_surface_dib { HBITMAP DIBsection; @@ -9482,7 +9506,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h UINT bitmap_size; }; -@@ -2588,7 +2734,11 @@ +@@ -2588,7 +2739,11 @@ struct wined3d_surface_ops { HRESULT (*surface_private_setup)(struct wined3d_surface *surface); @@ -9494,7 +9518,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_surface -@@ -2596,12 +2746,24 @@ +@@ -2596,12 +2751,24 @@ struct wined3d_resource resource; const struct wined3d_surface_ops *surface_ops; struct wined3d_texture *container; @@ -9519,7 +9543,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h GLuint rb_multisample; GLuint rb_resolved; GLenum texture_target; -@@ -2655,11 +2817,22 @@ +@@ -2655,11 +2822,22 @@ GLenum surface_get_gl_buffer(const struct wined3d_surface *surface) DECLSPEC_HIDDEN; void surface_get_drawable_size(const struct wined3d_surface *surface, const struct wined3d_context *context, unsigned int *width, unsigned int *height) DECLSPEC_HIDDEN; @@ -9542,7 +9566,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT wined3d_surface_map(struct wined3d_surface *surface, struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags) DECLSPEC_HIDDEN; void surface_modify_ds_location(struct wined3d_surface *surface, DWORD location, UINT w, UINT h) DECLSPEC_HIDDEN; -@@ -2671,6 +2844,7 @@ +@@ -2671,6 +2849,7 @@ void surface_translate_drawable_coords(const struct wined3d_surface *surface, HWND window, RECT *rect) DECLSPEC_HIDDEN; HRESULT wined3d_surface_unmap(struct wined3d_surface *surface) DECLSPEC_HIDDEN; HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface, @@ -9550,7 +9574,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h const struct wined3d_gl_info *gl_info, void *mem, unsigned int pitch) DECLSPEC_HIDDEN; HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const POINT *dst_point, struct wined3d_surface *src_surface, const RECT *src_rect) DECLSPEC_HIDDEN; -@@ -2687,6 +2861,20 @@ +@@ -2687,6 +2866,20 @@ void wined3d_surface_cleanup_cs(struct wined3d_surface *surface) DECLSPEC_HIDDEN; void wined3d_surface_getdc_cs(struct wined3d_surface *surface) DECLSPEC_HIDDEN; void wined3d_surface_releasedc_cs(struct wined3d_surface *surface) DECLSPEC_HIDDEN; @@ -9571,7 +9595,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void draw_textured_quad(const struct wined3d_surface *src_surface, struct wined3d_context *context, const RECT *src_rect, const RECT *dst_rect, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN; -@@ -2706,8 +2894,10 @@ +@@ -2706,8 +2899,10 @@ GLuint name; }; @@ -9582,7 +9606,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_vertex_declaration_element { const struct wined3d_format *format; -@@ -2736,8 +2926,10 @@ +@@ -2736,8 +2931,10 @@ BOOL half_float_conv_needed; }; @@ -9593,7 +9617,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_saved_states { DWORD transform[(HIGHEST_TRANSFORMSTATE >> 5) + 1]; -@@ -2805,6 +2997,7 @@ +@@ -2805,6 +3002,7 @@ void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN; void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN; @@ -9601,7 +9625,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT state_init(struct wined3d_state *state, const struct wined3d_gl_info *gl_info, const struct wined3d_d3d_info *d3d_info, DWORD flags) DECLSPEC_HIDDEN; void state_unbind_resources(struct wined3d_state *state) DECLSPEC_HIDDEN; -@@ -2855,6 +3048,32 @@ +@@ -2855,6 +3053,32 @@ void wined3d_cs_destroy(struct wined3d_cs *cs) DECLSPEC_HIDDEN; void wined3d_cs_switch_onscreen_ds(struct wined3d_cs *cs, struct wined3d_context *context, struct wined3d_surface *depth_stencil) DECLSPEC_HIDDEN; @@ -9634,7 +9658,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects, DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN; -@@ -2904,6 +3123,7 @@ +@@ -2904,6 +3128,7 @@ 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; @@ -9642,7 +9666,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_cs_emit_set_consts_f(struct wined3d_cs *cs, UINT start_register, const float *constants, UINT vector4f_count, enum wined3d_shader_type type) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_consts_b(struct wined3d_cs *cs, UINT start_register, -@@ -2964,6 +3184,7 @@ +@@ -2964,6 +3189,7 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_resource *resource, unsigned int sub_resource_idx, const struct wined3d_box *box, const void *data, unsigned int row_pitch, unsigned int depth_pitch) DECLSPEC_HIDDEN; @@ -9650,7 +9674,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* Direct3D terminology with little modifications. We do not have an issued state * because only the driver knows about it, but we have a created state because d3d -@@ -2978,8 +3199,12 @@ +@@ -2978,8 +3204,12 @@ struct wined3d_query_ops { HRESULT (*query_get_data)(struct wined3d_query *query, void *data, DWORD data_size, DWORD flags); @@ -9663,7 +9687,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_query -@@ -2993,12 +3218,16 @@ +@@ -2993,12 +3223,16 @@ enum wined3d_query_type type; DWORD data_size; void *extendedData; @@ -9680,7 +9704,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /* TODO: Add tests and support for FLOAT16_4 POSITIONT, D3DCOLOR position, other * fixed function semantics as D3DCOLOR or FLOAT16 */ -@@ -3025,7 +3254,9 @@ +@@ -3025,7 +3259,9 @@ GLenum buffer_object_usage; GLenum buffer_type_hint; DWORD flags; @@ -9690,7 +9714,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *map_ptr; struct wined3d_map_range *maps; -@@ -3050,11 +3281,15 @@ +@@ -3050,11 +3286,15 @@ BYTE *buffer_get_sysmem(struct wined3d_buffer *This, struct wined3d_context *context) DECLSPEC_HIDDEN; void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_context *context, const struct wined3d_state *state) DECLSPEC_HIDDEN; @@ -9706,7 +9730,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer, const struct wined3d_box *box, const void *data) DECLSPEC_HIDDEN; -@@ -3092,8 +3327,10 @@ +@@ -3092,8 +3332,10 @@ return surface_from_resource(resource); } @@ -9717,7 +9741,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_shader_resource_view { LONG refcount; -@@ -3106,8 +3343,12 @@ +@@ -3106,8 +3348,12 @@ struct wined3d_swapchain_ops { void (*swapchain_present)(struct wined3d_swapchain *swapchain, const RECT *src_rect, @@ -9730,7 +9754,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_swapchain -@@ -3146,8 +3387,10 @@ +@@ -3146,8 +3392,10 @@ void swapchain_destroy_contexts(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; HDC swapchain_get_backup_dc(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; void swapchain_update_draw_bindings(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; @@ -9741,7 +9765,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h /***************************************************************************** * Utility function prototypes -@@ -3348,7 +3591,9 @@ +@@ -3348,7 +3596,9 @@ void shader_generate_main(const struct wined3d_shader *shader, struct wined3d_string_buffer *buffer, const struct wined3d_shader_reg_maps *reg_maps, const DWORD *byte_code, void *backend_ctx) DECLSPEC_HIDDEN; BOOL shader_match_semantic(const char *semantic_name, enum wined3d_decl_usage usage) DECLSPEC_HIDDEN; @@ -9751,7 +9775,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h static inline BOOL shader_is_scalar(const struct wined3d_shader_register *reg) { -@@ -3555,7 +3800,12 @@ +@@ -3555,7 +3805,12 @@ const struct wined3d_format *wined3d_get_format(const struct wined3d_gl_info *gl_info, enum wined3d_format_id format_id) DECLSPEC_HIDDEN; diff --git a/patches/wpcap-Dynamic_Linking/0001-wpcap-Load-libpcap-dynamically.patch b/patches/wpcap-Dynamic_Linking/0001-wpcap-Load-libpcap-dynamically.patch index 8f42f2ed..4c6272c2 100644 --- a/patches/wpcap-Dynamic_Linking/0001-wpcap-Load-libpcap-dynamically.patch +++ b/patches/wpcap-Dynamic_Linking/0001-wpcap-Load-libpcap-dynamically.patch @@ -1,4 +1,4 @@ -From b5186872d7485ef90c957e855af6a2124fc40834 Mon Sep 17 00:00:00 2001 +From 1fee677cce6255628039d2e6b9e9fc12e57b998c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Hentschel?= Date: Tue, 26 Aug 2014 00:59:37 +0200 Subject: wpcap: Load libpcap dynamically. @@ -6,16 +6,16 @@ Subject: wpcap: Load libpcap dynamically. This is intended for packagers, without this patch libpcap easily becomes a fixed dependency of wine. Something we don't want i guess. --- - configure.ac | 6 +- + configure.ac | 4 +- dlls/wpcap/Makefile.in | 1 - dlls/wpcap/wpcap.c | 171 +++++++++++++++++++++++++++++++++++++++---------- - 3 files changed, 140 insertions(+), 38 deletions(-) + 3 files changed, 139 insertions(+), 37 deletions(-) diff --git a/configure.ac b/configure.ac -index 811e2aa..30b500a 100644 +index 1e6bba3..f0a3b55 100644 --- a/configure.ac +++ b/configure.ac -@@ -1182,11 +1182,11 @@ test "x$ac_cv_lib_OpenCL_clGetPlatformInfo" != xyes && enable_opencl=${enable_op +@@ -1174,9 +1174,9 @@ WINE_NOTICE_WITH(opencl,[test "x$ac_cv_lib_OpenCL_clGetPlatformInfo" != xyes], dnl **** Check for libpcap **** if test "$ac_cv_header_pcap_pcap_h" = "yes" then @@ -24,11 +24,8 @@ index 811e2aa..30b500a 100644 fi -WINE_NOTICE_WITH(pcap,[test "x$ac_cv_lib_pcap_pcap_create" != xyes], +WINE_NOTICE_WITH(pcap,[test "x$ac_cv_lib_soname_pcap" = "x"], - [pcap ${notice_platform}development files not found, wpcap won't be supported.]) --test "x$ac_cv_lib_pcap_pcap_create" != xyes && enable_wpcap=${enable_wpcap:-no} -+test "x$ac_cv_lib_soname_pcap" = "x" && enable_wpcap=${enable_wpcap:-no} - - dnl **** Check for libxml2 **** + [pcap ${notice_platform}development files not found, wpcap won't be supported.], + [enable_wpcap]) diff --git a/dlls/wpcap/Makefile.in b/dlls/wpcap/Makefile.in index 91b4a95..aeef71a 100644