mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
wined3d-CSMT_Main: Sync trivial changes from the upstream repository.
This commit is contained in:
parent
ef1d526974
commit
3cabc8a125
@ -5558,10 +5558,11 @@ fi
|
||||
# | Modified files:
|
||||
# | * dlls/d3d8/tests/visual.c, dlls/d3d9/tests/visual.c, dlls/wined3d/arb_program_shader.c, dlls/wined3d/buffer.c,
|
||||
# | dlls/wined3d/context.c, dlls/wined3d/cs.c, dlls/wined3d/device.c, dlls/wined3d/directx.c, dlls/wined3d/drawprim.c,
|
||||
# | dlls/wined3d/glsl_shader.c, dlls/wined3d/query.c, dlls/wined3d/resource.c, dlls/wined3d/shader.c, dlls/wined3d/state.c,
|
||||
# | dlls/wined3d/stateblock.c, dlls/wined3d/surface.c, dlls/wined3d/swapchain.c, dlls/wined3d/texture.c,
|
||||
# | dlls/wined3d/utils.c, dlls/wined3d/vertexdeclaration.c, dlls/wined3d/view.c, dlls/wined3d/volume.c,
|
||||
# | dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h, dlls/winex11.drv/opengl.c
|
||||
# | dlls/wined3d/glsl_shader.c, dlls/wined3d/query.c, dlls/wined3d/resource.c, dlls/wined3d/sampler.c,
|
||||
# | dlls/wined3d/shader.c, dlls/wined3d/state.c, dlls/wined3d/stateblock.c, dlls/wined3d/surface.c,
|
||||
# | dlls/wined3d/swapchain.c, dlls/wined3d/texture.c, dlls/wined3d/utils.c, dlls/wined3d/vertexdeclaration.c,
|
||||
# | dlls/wined3d/view.c, dlls/wined3d/volume.c, dlls/wined3d/wined3d_main.c, dlls/wined3d/wined3d_private.h,
|
||||
# | dlls/winex11.drv/opengl.c
|
||||
# |
|
||||
if test "$enable_wined3d_CSMT_Main" -eq 1; then
|
||||
patch_apply wined3d-CSMT_Main/0001-wined3d-Properly-initialize-format_flags-for-surface.patch
|
||||
@ -5640,106 +5641,109 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then
|
||||
patch_apply wined3d-CSMT_Main/0074-wined3d-Send-blits-through-the-command-stream.patch
|
||||
patch_apply wined3d-CSMT_Main/0075-wined3d-Put-update_surface-checks-back-in-place.patch
|
||||
patch_apply wined3d-CSMT_Main/0076-wined3d-Get-rid-of-WINED3D_BUFFER_FLUSH.patch
|
||||
patch_apply wined3d-CSMT_Main/0077-wined3d-Add-cs-waiting-debug-code.patch
|
||||
patch_apply wined3d-CSMT_Main/0078-wined3d-Don-t-force-strict-draw-ordering-for-multith.patch
|
||||
patch_apply wined3d-CSMT_Main/0079-wined3d-Send-render-target-view-clears-through-the-c.patch
|
||||
patch_apply wined3d-CSMT_Main/0080-wined3d-Wait-for-the-CS-in-GetDC.patch
|
||||
patch_apply wined3d-CSMT_Main/0081-wined3d-send-resource-maps-through-the-command-strea.patch
|
||||
patch_apply wined3d-CSMT_Main/0082-wined3d-Get-rid-of-the-end_scene-flush-and-finish.patch
|
||||
patch_apply wined3d-CSMT_Main/0083-wined3d-Replace-the-linked-lists-with-a-ringbuffer.patch
|
||||
patch_apply wined3d-CSMT_Main/0084-wined3d-Don-t-preload-buffers-on-unmap.patch
|
||||
patch_apply wined3d-CSMT_Main/0085-wined3d-Don-t-call-glFinish-before-swapping.patch
|
||||
patch_apply wined3d-CSMT_Main/0086-wined3d-wined3d_-_query_issue-never-fails.patch
|
||||
patch_apply wined3d-CSMT_Main/0087-wined3d-Add-query-support-to-the-command-stream.patch
|
||||
patch_apply wined3d-CSMT_Main/0088-wined3d-Check-our-CS-state-to-find-out-if-a-query-is.patch
|
||||
patch_apply wined3d-CSMT_Main/0089-wined3d-Poll-queries-automatically-in-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0090-wined3d-Introduce-a-separate-queue-for-priority-comm.patch
|
||||
patch_apply wined3d-CSMT_Main/0091-wined3d-Destroy-queries-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0092-wined3d-Separate-main-and-worker-thread-query-state.patch
|
||||
patch_apply wined3d-CSMT_Main/0093-wined3d-Don-t-poll-queries-that-failed-to-start.patch
|
||||
patch_apply wined3d-CSMT_Main/0094-wined3d-Remove-restated-queries-from-the-poll-list.patch
|
||||
patch_apply wined3d-CSMT_Main/0095-wined3d-Don-t-reset-the-query-state-if-it-doesn-t-ha.patch
|
||||
patch_apply wined3d-CSMT_Main/0096-wined3d-Put-this-into-the-query-poll-patch.patch
|
||||
patch_apply wined3d-CSMT_Main/0097-wined3d-Send-update_surface-commands-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0098-wined3d-Send-texture-preloads-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0099-wined3d-Send-surface-preloads-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0100-wined3d-Send-update_texture-calls-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0101-wined3d-Get-rid-of-the-surface_upload_data-glFinish.patch
|
||||
patch_apply wined3d-CSMT_Main/0102-wined3d-Don-t-lock-the-src-volume-in-device_update_v.patch
|
||||
patch_apply wined3d-CSMT_Main/0103-wined3d-Handle-evit_managed_resources-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0104-wined3d-Send-flips-through-the-command-stream.patch
|
||||
patch_apply wined3d-CSMT_Main/0105-wined3d-Introduce-resource-fencing.patch
|
||||
patch_apply wined3d-CSMT_Main/0106-wined3d-Fence-update_texture-and-update_surface-call.patch
|
||||
patch_apply wined3d-CSMT_Main/0107-wined3d-Dirtify-resources-on-unmap.patch
|
||||
patch_apply wined3d-CSMT_Main/0108-wined3d-Fence-texture-reads-in-draws.patch
|
||||
patch_apply wined3d-CSMT_Main/0109-wined3d-Fence-render-targets-and-depth-stencils.patch
|
||||
patch_apply wined3d-CSMT_Main/0110-wined3d-Fence-blit-operations.patch
|
||||
patch_apply wined3d-CSMT_Main/0111-wined3d-Fence-color_fill-operations.patch
|
||||
patch_apply wined3d-CSMT_Main/0112-wined3d-Fence-clear-calls.patch
|
||||
patch_apply wined3d-CSMT_Main/0113-wined3d-Fence-present-calls.patch
|
||||
patch_apply wined3d-CSMT_Main/0114-wined3d-Make-resource-maps-and-unmaps-a-priority-com.patch
|
||||
patch_apply wined3d-CSMT_Main/0115-wined3d-Dirtify-changed-textures-through-the-command.patch
|
||||
patch_apply wined3d-CSMT_Main/0116-wined3d-Wrap-GL-BOs-in-a-structure.patch
|
||||
patch_apply wined3d-CSMT_Main/0117-wined3d-Separate-resource-map-and-draw-buffers.patch
|
||||
patch_apply wined3d-CSMT_Main/0118-wined3d-Implement-DISCARD-resource-maps-with-buffers.patch
|
||||
patch_apply wined3d-CSMT_Main/0119-wined3d-Implement-DISCARD-resource-maps-with-heap-me.patch
|
||||
patch_apply wined3d-CSMT_Main/0120-wined3d-Unset-some-objects-in-state_init_default.patch
|
||||
patch_apply wined3d-CSMT_Main/0121-wined3d-Don-t-request-the-frontbuffer-to-create-dumm.patch
|
||||
patch_apply wined3d-CSMT_Main/0122-wined3d-Use-double-buffered-buffers-for-multithreade.patch
|
||||
patch_apply wined3d-CSMT_Main/0123-wined3d-Don-t-synchronize-NOOVERWRITE-buffer-maps.patch
|
||||
patch_apply wined3d-CSMT_Main/0124-wined3d-Separate-buffer-map-write-and-draw-read-memo.patch
|
||||
patch_apply wined3d-CSMT_Main/0125-wined3d-Accelerate-DISCARD-buffer-maps.patch
|
||||
patch_apply wined3d-CSMT_Main/0126-wined3d-Accelerate-READONLY-buffer-maps.patch
|
||||
patch_apply wined3d-CSMT_Main/0127-wined3d-Access-the-buffer-dirty-areas-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0128-wined3d-Ignore-buffer-resource.map_count-in-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0129-wined3d-Send-buffer-preloads-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0130-wined3d-Use-glBufferSubData-instead-of-glMapBufferRa.patch
|
||||
patch_apply wined3d-CSMT_Main/0131-wined3d-Separate-GL-buffer-discard-control-from-igno.patch
|
||||
patch_apply wined3d-CSMT_Main/0132-wined3d-Create-buffers-before-mapping-them.patch
|
||||
patch_apply wined3d-CSMT_Main/0133-wined3d-Destroy-views-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0134-wined3d-Remove-another-glFinish.patch
|
||||
patch_apply wined3d-CSMT_Main/0135-wined3d-Destroy-vertex-declarations-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0136-wined3d-Destroy-shaders-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0137-wined3d-Create-VBOs-through-the-command-stream.patch
|
||||
patch_apply wined3d-CSMT_Main/0138-wined3d-Clean-up-resource-data-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0139-wined3d-Clean-up-buffer-resource-data-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0140-wined3d-Clean-up-volume-resource-data-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0141-wined3d-Clean-up-surfaces-through-the-cs.patch
|
||||
patch_apply wined3d-CSMT_Main/0142-wined3d-Clean-up-texture-resources-through-the-cs.patch
|
||||
patch_apply wined3d-CSMT_Main/0143-wined3d-Unload-resources-through-the-CS-in-uninit_3d.patch
|
||||
patch_apply wined3d-CSMT_Main/0144-wined3d-Unload-resources-through-the-CS-in-device_re.patch
|
||||
patch_apply wined3d-CSMT_Main/0145-wined3d-Don-t-glFinish-after-a-depth-buffer-blit.patch
|
||||
patch_apply wined3d-CSMT_Main/0146-wined3d-Remove-software-cursor-support.patch
|
||||
patch_apply wined3d-CSMT_Main/0147-wined3d-Create-dummy-textures-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0148-wined3d-Create-the-initial-context-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0149-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch
|
||||
patch_apply wined3d-CSMT_Main/0150-wined3d-Ignore-WINED3D_MAP_NO_DIRTY_UPDATE-in-resour.patch
|
||||
patch_apply wined3d-CSMT_Main/0151-wined3d-Delete-GL-contexts-through-the-CS-in-reset.patch
|
||||
patch_apply wined3d-CSMT_Main/0152-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch
|
||||
patch_apply wined3d-CSMT_Main/0153-wined3d-Invoke-surface_unload-through-the-CS-in-wine.patch
|
||||
patch_apply wined3d-CSMT_Main/0154-wined3d-Use-an-event-to-block-the-worker-thread-when.patch
|
||||
patch_apply wined3d-CSMT_Main/0155-wined3d-Fence-preload-operations.patch
|
||||
patch_apply wined3d-CSMT_Main/0156-d3d8-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch
|
||||
patch_apply wined3d-CSMT_Main/0157-d3d9-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch
|
||||
patch_apply wined3d-CSMT_Main/0158-wined3d-Completely-reset-the-state-on-reset.patch
|
||||
patch_apply wined3d-CSMT_Main/0159-wined3d-Send-getdc-and-releasedc-through-the-command.patch
|
||||
patch_apply wined3d-CSMT_Main/0160-wined3d-Set-map_heap_memory-NULL-when-allocating-a-P.patch
|
||||
patch_apply wined3d-CSMT_Main/0161-wined3d-Wait-only-for-the-buffer-to-be-idle.patch
|
||||
patch_apply wined3d-CSMT_Main/0162-wined3d-Add-a-comment-about-worker-thread-lag.patch
|
||||
patch_apply wined3d-CSMT_Main/0163-wined3d-Remove-the-texture-destroy-glFinish.patch
|
||||
patch_apply wined3d-CSMT_Main/0164-wined3d-Move-FBO-destruction-into-the-worker-thread.patch
|
||||
patch_apply wined3d-CSMT_Main/0165-wined3d-Don-t-incref-decref-textures-in-color-depth-.patch
|
||||
patch_apply wined3d-CSMT_Main/0166-Winex11-complain-about-glfinish.patch
|
||||
patch_apply wined3d-CSMT_Main/0167-wined3d-Make-sure-the-new-window-is-set-up-before-se.patch
|
||||
patch_apply wined3d-CSMT_Main/0168-wined3d-Remove-the-device_reset-CS-sync-fixme.patch
|
||||
patch_apply wined3d-CSMT_Main/0169-wined3d-Put-GL_APPLE_flush_buffer_range-syncing-back.patch
|
||||
patch_apply wined3d-CSMT_Main/0170-wined3d-Wait-for-the-resource-to-be-idle-when-destro.patch
|
||||
patch_apply wined3d-CSMT_Main/0171-wined3d-Don-t-sync-on-redundant-discard-calls.patch
|
||||
patch_apply wined3d-CSMT_Main/0172-wined3d-Don-t-discard-new-buffers.patch
|
||||
patch_apply wined3d-CSMT_Main/0173-wined3d-Don-t-try-to-sync-VBOs-manually-on-OSX-with-.patch
|
||||
patch_apply wined3d-CSMT_Main/0174-wined3d-Render-target-lock-hack.patch
|
||||
patch_apply wined3d-CSMT_Main/0175-wined3d-Avoid-calling-wined3d_surface_blt-from-surfa.patch
|
||||
patch_apply wined3d-CSMT_Main/0176-wined3d-Enable-CSMT-by-default-print-a-winediag-mess.patch
|
||||
patch_apply wined3d-CSMT_Main/0077-wined3d-Don-t-force-strict-draw-ordering-for-multith.patch
|
||||
patch_apply wined3d-CSMT_Main/0078-wined3d-Send-render-target-view-clears-through-the-c.patch
|
||||
patch_apply wined3d-CSMT_Main/0079-wined3d-Wait-for-the-CS-in-GetDC.patch
|
||||
patch_apply wined3d-CSMT_Main/0080-wined3d-send-resource-maps-through-the-command-strea.patch
|
||||
patch_apply wined3d-CSMT_Main/0081-wined3d-Get-rid-of-the-end_scene-flush-and-finish.patch
|
||||
patch_apply wined3d-CSMT_Main/0082-wined3d-Replace-the-linked-lists-with-a-ringbuffer.patch
|
||||
patch_apply wined3d-CSMT_Main/0083-wined3d-Don-t-preload-buffers-on-unmap.patch
|
||||
patch_apply wined3d-CSMT_Main/0084-wined3d-Don-t-call-glFinish-before-swapping.patch
|
||||
patch_apply wined3d-CSMT_Main/0085-wined3d-wined3d_-_query_issue-never-fails.patch
|
||||
patch_apply wined3d-CSMT_Main/0086-wined3d-Add-query-support-to-the-command-stream.patch
|
||||
patch_apply wined3d-CSMT_Main/0087-wined3d-Check-our-CS-state-to-find-out-if-a-query-is.patch
|
||||
patch_apply wined3d-CSMT_Main/0088-wined3d-Poll-queries-automatically-in-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0089-wined3d-Introduce-a-separate-queue-for-priority-comm.patch
|
||||
patch_apply wined3d-CSMT_Main/0090-wined3d-Destroy-queries-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0091-wined3d-Separate-main-and-worker-thread-query-state.patch
|
||||
patch_apply wined3d-CSMT_Main/0092-wined3d-Don-t-poll-queries-that-failed-to-start.patch
|
||||
patch_apply wined3d-CSMT_Main/0093-wined3d-Remove-restated-queries-from-the-poll-list.patch
|
||||
patch_apply wined3d-CSMT_Main/0094-wined3d-Don-t-reset-the-query-state-if-it-doesn-t-ha.patch
|
||||
patch_apply wined3d-CSMT_Main/0095-wined3d-Put-this-into-the-query-poll-patch.patch
|
||||
patch_apply wined3d-CSMT_Main/0096-wined3d-Send-update_surface-commands-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0097-wined3d-Send-texture-preloads-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0098-wined3d-Send-surface-preloads-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0099-wined3d-Send-update_texture-calls-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0100-wined3d-Get-rid-of-the-surface_upload_data-glFinish.patch
|
||||
patch_apply wined3d-CSMT_Main/0101-wined3d-Don-t-lock-the-src-volume-in-device_update_v.patch
|
||||
patch_apply wined3d-CSMT_Main/0102-wined3d-Handle-evit_managed_resources-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0103-wined3d-Send-flips-through-the-command-stream.patch
|
||||
patch_apply wined3d-CSMT_Main/0104-wined3d-Introduce-resource-fencing.patch
|
||||
patch_apply wined3d-CSMT_Main/0105-wined3d-Fence-update_texture-and-update_surface-call.patch
|
||||
patch_apply wined3d-CSMT_Main/0106-wined3d-Dirtify-resources-on-unmap.patch
|
||||
patch_apply wined3d-CSMT_Main/0107-wined3d-Fence-texture-reads-in-draws.patch
|
||||
patch_apply wined3d-CSMT_Main/0108-wined3d-Fence-render-targets-and-depth-stencils.patch
|
||||
patch_apply wined3d-CSMT_Main/0109-wined3d-Fence-blit-operations.patch
|
||||
patch_apply wined3d-CSMT_Main/0110-wined3d-Fence-color_fill-operations.patch
|
||||
patch_apply wined3d-CSMT_Main/0111-wined3d-Fence-clear-calls.patch
|
||||
patch_apply wined3d-CSMT_Main/0112-wined3d-Fence-present-calls.patch
|
||||
patch_apply wined3d-CSMT_Main/0113-wined3d-Make-resource-maps-and-unmaps-a-priority-com.patch
|
||||
patch_apply wined3d-CSMT_Main/0114-wined3d-Dirtify-changed-textures-through-the-command.patch
|
||||
patch_apply wined3d-CSMT_Main/0115-wined3d-Wrap-GL-BOs-in-a-structure.patch
|
||||
patch_apply wined3d-CSMT_Main/0116-wined3d-Separate-resource-map-and-draw-buffers.patch
|
||||
patch_apply wined3d-CSMT_Main/0117-wined3d-Implement-DISCARD-resource-maps-with-buffers.patch
|
||||
patch_apply wined3d-CSMT_Main/0118-wined3d-Implement-DISCARD-resource-maps-with-heap-me.patch
|
||||
patch_apply wined3d-CSMT_Main/0119-wined3d-Unset-some-objects-in-state_init_default.patch
|
||||
patch_apply wined3d-CSMT_Main/0120-wined3d-Don-t-request-the-frontbuffer-to-create-dumm.patch
|
||||
patch_apply wined3d-CSMT_Main/0121-wined3d-Use-double-buffered-buffers-for-multithreade.patch
|
||||
patch_apply wined3d-CSMT_Main/0122-wined3d-Don-t-synchronize-NOOVERWRITE-buffer-maps.patch
|
||||
patch_apply wined3d-CSMT_Main/0123-wined3d-Separate-buffer-map-write-and-draw-read-memo.patch
|
||||
patch_apply wined3d-CSMT_Main/0124-wined3d-Accelerate-DISCARD-buffer-maps.patch
|
||||
patch_apply wined3d-CSMT_Main/0125-wined3d-Accelerate-READONLY-buffer-maps.patch
|
||||
patch_apply wined3d-CSMT_Main/0126-wined3d-Access-the-buffer-dirty-areas-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0127-wined3d-Ignore-buffer-resource.map_count-in-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0128-wined3d-Send-buffer-preloads-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0129-wined3d-Use-glBufferSubData-instead-of-glMapBufferRa.patch
|
||||
patch_apply wined3d-CSMT_Main/0130-wined3d-Separate-GL-buffer-discard-control-from-igno.patch
|
||||
patch_apply wined3d-CSMT_Main/0131-wined3d-Create-buffers-before-mapping-them.patch
|
||||
patch_apply wined3d-CSMT_Main/0132-wined3d-Destroy-views-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0133-wined3d-Remove-another-glFinish.patch
|
||||
patch_apply wined3d-CSMT_Main/0134-wined3d-Destroy-vertex-declarations-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0135-wined3d-Destroy-shaders-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0136-wined3d-Create-VBOs-through-the-command-stream.patch
|
||||
patch_apply wined3d-CSMT_Main/0137-wined3d-Clean-up-resource-data-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0138-wined3d-Clean-up-buffer-resource-data-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0139-wined3d-Clean-up-volume-resource-data-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0140-wined3d-Clean-up-surfaces-through-the-cs.patch
|
||||
patch_apply wined3d-CSMT_Main/0141-wined3d-Clean-up-texture-resources-through-the-cs.patch
|
||||
patch_apply wined3d-CSMT_Main/0142-wined3d-Unload-resources-through-the-CS-in-uninit_3d.patch
|
||||
patch_apply wined3d-CSMT_Main/0143-wined3d-Unload-resources-through-the-CS-in-device_re.patch
|
||||
patch_apply wined3d-CSMT_Main/0144-wined3d-Don-t-glFinish-after-a-depth-buffer-blit.patch
|
||||
patch_apply wined3d-CSMT_Main/0145-wined3d-Remove-software-cursor-support.patch
|
||||
patch_apply wined3d-CSMT_Main/0146-wined3d-Create-dummy-textures-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0147-wined3d-Create-the-initial-context-through-the-CS.patch
|
||||
patch_apply wined3d-CSMT_Main/0148-wined3d-Recreate-ctx-and-dummy-textures-through-the-.patch
|
||||
patch_apply wined3d-CSMT_Main/0149-wined3d-Ignore-WINED3D_MAP_NO_DIRTY_UPDATE-in-resour.patch
|
||||
patch_apply wined3d-CSMT_Main/0150-wined3d-Delete-GL-contexts-through-the-CS-in-reset.patch
|
||||
patch_apply wined3d-CSMT_Main/0151-wined3d-Delete-GL-contexts-through-the-CS-in-uninit_.patch
|
||||
patch_apply wined3d-CSMT_Main/0152-wined3d-Invoke-surface_unload-through-the-CS-in-wine.patch
|
||||
patch_apply wined3d-CSMT_Main/0153-wined3d-Use-an-event-to-block-the-worker-thread-when.patch
|
||||
patch_apply wined3d-CSMT_Main/0154-wined3d-Fence-preload-operations.patch
|
||||
patch_apply wined3d-CSMT_Main/0155-d3d8-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch
|
||||
patch_apply wined3d-CSMT_Main/0156-d3d9-tests-D3DLOCK_NO_DIRTY_UPDATE-on-managed-textur.patch
|
||||
patch_apply wined3d-CSMT_Main/0157-wined3d-Completely-reset-the-state-on-reset.patch
|
||||
patch_apply wined3d-CSMT_Main/0158-wined3d-Send-getdc-and-releasedc-through-the-command.patch
|
||||
patch_apply wined3d-CSMT_Main/0159-wined3d-Set-map_heap_memory-NULL-when-allocating-a-P.patch
|
||||
patch_apply wined3d-CSMT_Main/0160-wined3d-Wait-only-for-the-buffer-to-be-idle.patch
|
||||
patch_apply wined3d-CSMT_Main/0161-wined3d-Add-a-comment-about-worker-thread-lag.patch
|
||||
patch_apply wined3d-CSMT_Main/0162-wined3d-Remove-the-texture-destroy-glFinish.patch
|
||||
patch_apply wined3d-CSMT_Main/0163-wined3d-Move-FBO-destruction-into-the-worker-thread.patch
|
||||
patch_apply wined3d-CSMT_Main/0164-wined3d-Don-t-incref-decref-textures-in-color-depth-.patch
|
||||
patch_apply wined3d-CSMT_Main/0165-Winex11-complain-about-glfinish.patch
|
||||
patch_apply wined3d-CSMT_Main/0166-wined3d-Make-sure-the-new-window-is-set-up-before-se.patch
|
||||
patch_apply wined3d-CSMT_Main/0167-wined3d-Remove-the-device_reset-CS-sync-fixme.patch
|
||||
patch_apply wined3d-CSMT_Main/0168-wined3d-Put-GL_APPLE_flush_buffer_range-syncing-back.patch
|
||||
patch_apply wined3d-CSMT_Main/0169-wined3d-Wait-for-the-resource-to-be-idle-when-destro.patch
|
||||
patch_apply wined3d-CSMT_Main/0170-wined3d-Don-t-sync-on-redundant-discard-calls.patch
|
||||
patch_apply wined3d-CSMT_Main/0171-wined3d-Don-t-discard-new-buffers.patch
|
||||
patch_apply wined3d-CSMT_Main/0172-wined3d-Don-t-try-to-sync-VBOs-manually-on-OSX-with-.patch
|
||||
patch_apply wined3d-CSMT_Main/0173-wined3d-Render-target-lock-hack.patch
|
||||
patch_apply wined3d-CSMT_Main/0174-wined3d-Avoid-calling-wined3d_surface_blt-from-surfa.patch
|
||||
patch_apply wined3d-CSMT_Main/0175-wined3d-Only-discard-buffers-that-are-in-use.patch
|
||||
patch_apply wined3d-CSMT_Main/0176-wined3d-Destroy-samplers-through-the-command-stream.patch
|
||||
patch_apply wined3d-CSMT_Main/0177-wined3d-Hack-to-reject-unsupported-color-fills.patch
|
||||
patch_apply wined3d-CSMT_Main/0178-wined3d-Alloc-the-buffer-map-array-before-mapping-th.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", "wined3d: Properly initialize format_flags for surfaces and volumes.", 1 },';
|
||||
@ -5818,7 +5822,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Send blits through the command stream.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Put update_surface checks back in place.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Get rid of WINED3D_BUFFER_FLUSH.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Add cs waiting debug code.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t force strict draw ordering for multithreaded CS.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Send render target view clears through the command stream.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Wait for the CS in GetDC.", 1 },';
|
||||
@ -5917,6 +5920,10 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t try to sync VBOs manually on OSX with CSMT.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Render target lock hack.", 1 },';
|
||||
echo '+ { "Matteo Bruni", "wined3d: Avoid calling wined3d_surface_blt() from surface_upload_from_surface().", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Only discard buffers that are in use.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Destroy samplers through the command stream.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Hack to reject unsupported color fills.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Alloc the buffer map array before mapping the buffer.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "wined3d: Enable CSMT by default, print a winediag message informing about this patchset.", 1 },';
|
||||
echo '+ { "Wine Staging Team", "Autogenerated #ifdef patch for wined3d-CSMT_Main.", 1 },';
|
||||
) >> "$patchlist"
|
||||
|
@ -1,15 +1,15 @@
|
||||
From fb1391dc1f2274d4336846720bb9869a3b751b0c Mon Sep 17 00:00:00 2001
|
||||
From 0bff3caeafd1080f6fd6244abdf8a87ddff6c3d2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 19 Sep 2013 14:22:24 +0200
|
||||
Subject: wined3d: Merge get_pitch functions.
|
||||
|
||||
---
|
||||
dlls/wined3d/resource.c | 31 ++++++++++++++++
|
||||
dlls/wined3d/surface.c | 81 ++++++++++++++++++++----------------------
|
||||
dlls/wined3d/resource.c | 31 +++++++++++++++++
|
||||
dlls/wined3d/surface.c | 78 ++++++++++++++++++++----------------------
|
||||
dlls/wined3d/texture.c | 2 +-
|
||||
dlls/wined3d/volume.c | 28 ++-------------
|
||||
dlls/wined3d/wined3d_private.h | 5 +--
|
||||
5 files changed, 75 insertions(+), 72 deletions(-)
|
||||
5 files changed, 74 insertions(+), 70 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
|
||||
index 1891165..0968cd2 100644
|
||||
@ -51,7 +51,7 @@ index 1891165..0968cd2 100644
|
||||
+ TRACE("Returning row pitch %u, slice pitch %u.\n", *row_pitch, *slice_pitch);
|
||||
+}
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 3b033db..bb2278d 100644
|
||||
index 2b5e734..c96c44c 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -364,6 +364,7 @@ static HRESULT surface_create_dib_section(struct wined3d_surface *surface)
|
||||
@ -158,7 +158,7 @@ index 3b033db..bb2278d 100644
|
||||
}
|
||||
|
||||
HRESULT CDECL wined3d_surface_set_overlay_position(struct wined3d_surface *surface, LONG x, LONG y)
|
||||
@@ -2109,20 +2100,21 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface,
|
||||
@@ -2109,20 +2100,22 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface,
|
||||
surface->resource.map_binding = WINED3D_LOCATION_USER_MEMORY;
|
||||
valid_location = WINED3D_LOCATION_USER_MEMORY;
|
||||
}
|
||||
@ -177,16 +177,15 @@ index 3b033db..bb2278d 100644
|
||||
else
|
||||
{
|
||||
/* User memory surfaces don't have the regular surface alignment. */
|
||||
- surface->resource.size = wined3d_format_calculate_size(texture_resource->format,
|
||||
- 1, width, height, 1);
|
||||
surface->resource.size = wined3d_format_calculate_size(texture_resource->format,
|
||||
1, width, height, 1);
|
||||
- surface->pitch = wined3d_format_calculate_pitch(texture_resource->format, width);
|
||||
+ surface->resource.size = wined3d_format_calculate_size(texture_resource->format, 1, width, height, 1);
|
||||
+ surface->resource.custom_row_pitch = wined3d_format_calculate_pitch(texture_resource->format, width);
|
||||
+ surface->resource.custom_slice_pitch = surface->resource.custom_row_pitch * surface->resource.height; /* FIXME */
|
||||
}
|
||||
|
||||
/* The format might be changed to a format that needs conversion.
|
||||
@@ -2742,7 +2734,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
|
||||
@@ -2589,7 +2582,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
|
||||
if (fmt_flags & WINED3DFMT_FLAG_BROKEN_PITCH)
|
||||
map_desc->row_pitch = surface->resource.width * format->byte_count;
|
||||
else
|
||||
@ -195,26 +194,26 @@ index 3b033db..bb2278d 100644
|
||||
map_desc->slice_pitch = 0;
|
||||
|
||||
if (!rect)
|
||||
@@ -2869,6 +2861,7 @@ static void read_from_framebuffer(struct wined3d_surface *surface, DWORD dst_loc
|
||||
@@ -2716,6 +2709,7 @@ static void read_from_framebuffer(struct wined3d_surface *surface, DWORD dst_loc
|
||||
int i;
|
||||
BOOL srcIsUpsideDown;
|
||||
struct wined3d_bo_address data;
|
||||
+ UINT row_pitch, slice_pitch;
|
||||
+ DWORD slice_pitch, pitch;
|
||||
|
||||
surface_get_memory(surface, &data, dst_location);
|
||||
|
||||
@@ -2905,8 +2898,8 @@ static void read_from_framebuffer(struct wined3d_surface *surface, DWORD dst_loc
|
||||
@@ -2752,8 +2746,8 @@ static void read_from_framebuffer(struct wined3d_surface *surface, DWORD dst_loc
|
||||
}
|
||||
|
||||
/* Setup pixel store pack state -- to glReadPixels into the correct place */
|
||||
- gl_info->gl_ops.gl.p_glPixelStorei(GL_PACK_ROW_LENGTH,
|
||||
- wined3d_surface_get_pitch(surface) / surface->resource.format->byte_count);
|
||||
+ wined3d_resource_get_pitch(&surface->resource, &row_pitch, &slice_pitch);
|
||||
+ gl_info->gl_ops.gl.p_glPixelStorei(GL_PACK_ROW_LENGTH, row_pitch / surface->resource.format->byte_count);
|
||||
+ wined3d_resource_get_pitch(&surface->resource, &pitch, &slice_pitch);
|
||||
+ gl_info->gl_ops.gl.p_glPixelStorei(GL_PACK_ROW_LENGTH, pitch / surface->resource.format->byte_count);
|
||||
checkGLcall("glPixelStorei");
|
||||
|
||||
gl_info->gl_ops.gl.p_glReadPixels(0, 0,
|
||||
@@ -2923,7 +2916,9 @@ static void read_from_framebuffer(struct wined3d_surface *surface, DWORD dst_loc
|
||||
@@ -2770,7 +2764,9 @@ static void read_from_framebuffer(struct wined3d_surface *surface, DWORD dst_loc
|
||||
{
|
||||
/* glReadPixels returns the image upside down, and there is no way to prevent this.
|
||||
* Flip the lines in software. */
|
||||
@ -225,7 +224,7 @@ index 3b033db..bb2278d 100644
|
||||
|
||||
if (!(row = HeapAlloc(GetProcessHeap(), 0, pitch)))
|
||||
goto error;
|
||||
@@ -4107,7 +4102,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -3967,7 +3963,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
const struct wined3d_color_key_conversion *conversion;
|
||||
struct wined3d_texture *texture = surface->container;
|
||||
struct wined3d_context *context;
|
||||
@ -234,7 +233,7 @@ index 3b033db..bb2278d 100644
|
||||
struct wined3d_bo_address data;
|
||||
struct wined3d_format format;
|
||||
POINT dst_point = {0, 0};
|
||||
@@ -4195,7 +4190,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -4055,7 +4051,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
wined3d_texture_bind_and_dirtify(texture, context, srgb);
|
||||
|
||||
width = surface->resource.width;
|
||||
@ -243,7 +242,7 @@ index 3b033db..bb2278d 100644
|
||||
|
||||
format = *texture->resource.format;
|
||||
if ((conversion = wined3d_format_get_color_key_conversion(texture, TRUE)))
|
||||
@@ -4233,9 +4228,9 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -4093,9 +4089,9 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
context_release(context);
|
||||
return E_OUTOFMEMORY;
|
||||
}
|
||||
@ -255,7 +254,7 @@ index 3b033db..bb2278d 100644
|
||||
data.addr = mem;
|
||||
}
|
||||
else if (conversion)
|
||||
@@ -4255,14 +4250,14 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -4115,14 +4111,14 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
}
|
||||
if (texture->swapchain && texture->swapchain->palette)
|
||||
palette = texture->swapchain->palette;
|
||||
@ -274,10 +273,10 @@ index 3b033db..bb2278d 100644
|
||||
context_release(context);
|
||||
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index 1e039e4..f4e77fb 100644
|
||||
index b369809..3485ac2 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -1233,7 +1233,7 @@ static void texture3d_sub_resource_upload_data(struct wined3d_resource *sub_reso
|
||||
@@ -1242,7 +1242,7 @@ static void texture3d_sub_resource_upload_data(struct wined3d_resource *sub_reso
|
||||
struct wined3d_const_bo_address addr;
|
||||
unsigned int row_pitch, slice_pitch;
|
||||
|
||||
@ -287,7 +286,7 @@ index 1e039e4..f4e77fb 100644
|
||||
FIXME("Ignoring row/slice pitch (%u/%u).\n", data->row_pitch, data->slice_pitch);
|
||||
|
||||
diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
|
||||
index 424938a..b672d4a 100644
|
||||
index 4e1c415..eec1492 100644
|
||||
--- a/dlls/wined3d/volume.c
|
||||
+++ b/dlls/wined3d/volume.c
|
||||
@@ -40,30 +40,6 @@ BOOL volume_prepare_system_memory(struct wined3d_volume *volume)
|
||||
@ -340,10 +339,10 @@ index 424938a..b672d4a 100644
|
||||
|
||||
if (!box)
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 5786db0..7f989dc 100644
|
||||
index d1ba5e4..77463aa 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2162,6 +2162,7 @@ struct wined3d_resource
|
||||
@@ -2164,6 +2164,7 @@ struct wined3d_resource
|
||||
UINT size;
|
||||
DWORD priority;
|
||||
void *heap_memory;
|
||||
@ -351,7 +350,7 @@ index 5786db0..7f989dc 100644
|
||||
struct list resource_list_entry;
|
||||
|
||||
void *parent;
|
||||
@@ -2189,6 +2190,8 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
|
||||
@@ -2191,6 +2192,8 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
|
||||
void resource_unload(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void wined3d_resource_free_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
@ -360,7 +359,7 @@ index 5786db0..7f989dc 100644
|
||||
GLbitfield wined3d_resource_gl_map_flags(DWORD d3d_flags) DECLSPEC_HIDDEN;
|
||||
GLenum wined3d_resource_gl_legacy_map_flags(DWORD d3d_flags) DECLSPEC_HIDDEN;
|
||||
BOOL wined3d_resource_is_offscreen(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
@@ -2326,7 +2329,6 @@ BOOL volume_prepare_system_memory(struct wined3d_volume *volume) DECLSPEC_HIDDEN
|
||||
@@ -2328,7 +2331,6 @@ BOOL volume_prepare_system_memory(struct wined3d_volume *volume) DECLSPEC_HIDDEN
|
||||
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;
|
||||
@ -368,7 +367,7 @@ index 5786db0..7f989dc 100644
|
||||
void wined3d_volume_load(struct wined3d_volume *volume, struct wined3d_context *context,
|
||||
BOOL srgb_mode) DECLSPEC_HIDDEN;
|
||||
void wined3d_volume_invalidate_location(struct wined3d_volume *volume, DWORD location) DECLSPEC_HIDDEN;
|
||||
@@ -2376,7 +2378,6 @@ struct wined3d_surface
|
||||
@@ -2378,7 +2380,6 @@ struct wined3d_surface
|
||||
|
||||
DWORD flags;
|
||||
|
||||
@ -377,5 +376,5 @@ index 5786db0..7f989dc 100644
|
||||
UINT pow2Height;
|
||||
|
||||
--
|
||||
2.4.5
|
||||
2.5.1
|
||||
|
||||
|
@ -1,18 +1,18 @@
|
||||
From f322a8e12cfa32650bcbb970f41a84c2430ac00e Mon Sep 17 00:00:00 2001
|
||||
From 0f7f57e440a198c31920c7077a6c7b0661945039 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Sun, 17 Nov 2013 19:34:26 +0100
|
||||
Subject: wined3d: Pass a context to surface_load_drawable and
|
||||
surface_blt_to_drawable.
|
||||
|
||||
---
|
||||
dlls/wined3d/surface.c | 40 ++++++++++++++++++++++++++++++++++------
|
||||
1 file changed, 34 insertions(+), 6 deletions(-)
|
||||
dlls/wined3d/surface.c | 41 +++++++++++++++++++++++++++++++++++------
|
||||
1 file changed, 35 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 4e2063f..1f97857 100644
|
||||
index 9351ab2..1b3def9 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -3533,19 +3533,35 @@ void surface_translate_drawable_coords(const struct wined3d_surface *surface, HW
|
||||
@@ -3536,19 +3536,35 @@ void surface_translate_drawable_coords(const struct wined3d_surface *surface, HW
|
||||
rect->bottom = drawable_height - rect->bottom;
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@ index 4e2063f..1f97857 100644
|
||||
gl_info = context->gl_info;
|
||||
|
||||
/* Make sure the surface is up-to-date. This should probably use
|
||||
@@ -3598,7 +3614,12 @@ static void surface_blt_to_drawable(const struct wined3d_device *device,
|
||||
@@ -3601,7 +3617,12 @@ static void surface_blt_to_drawable(const struct wined3d_device *device,
|
||||
&& dst_surface->container->swapchain->front_buffer == dst_surface->container))
|
||||
gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */
|
||||
|
||||
@ -63,7 +63,7 @@ index 4e2063f..1f97857 100644
|
||||
}
|
||||
|
||||
HRESULT surface_color_fill(struct wined3d_surface *s, const RECT *rect, const struct wined3d_color *color)
|
||||
@@ -4095,8 +4116,9 @@ static void surface_load_sysmem(struct wined3d_surface *surface,
|
||||
@@ -4101,8 +4122,9 @@ static void surface_load_sysmem(struct wined3d_surface *surface,
|
||||
surface, wined3d_debug_location(surface->locations));
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@ index 4e2063f..1f97857 100644
|
||||
{
|
||||
RECT r;
|
||||
|
||||
@@ -4109,7 +4131,7 @@ static HRESULT surface_load_drawable(struct wined3d_surface *surface,
|
||||
@@ -4115,7 +4137,7 @@ static HRESULT surface_load_drawable(struct wined3d_surface *surface,
|
||||
|
||||
surface_get_rect(surface, NULL, &r);
|
||||
surface_load_location(surface, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
@ -83,7 +83,7 @@ index 4e2063f..1f97857 100644
|
||||
WINED3D_TEXF_POINT, FALSE, surface, &r, surface, &r);
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -4367,7 +4389,10 @@ HRESULT surface_load_location(struct wined3d_surface *surface, DWORD location)
|
||||
@@ -4373,7 +4395,10 @@ HRESULT surface_load_location(struct wined3d_surface *surface, DWORD location)
|
||||
break;
|
||||
|
||||
case WINED3D_LOCATION_DRAWABLE:
|
||||
@ -95,13 +95,16 @@ index 4e2063f..1f97857 100644
|
||||
return hr;
|
||||
break;
|
||||
|
||||
@@ -4546,13 +4571,16 @@ static void ffp_blit_blit_surface(struct wined3d_device *device, DWORD filter,
|
||||
@@ -4547,6 +4572,8 @@ static void ffp_blit_blit_surface(struct wined3d_device *device, DWORD filter,
|
||||
struct wined3d_surface *dst_surface, const RECT *dst_rect,
|
||||
const struct wined3d_color_key *color_key)
|
||||
{
|
||||
+ struct wined3d_context *context;
|
||||
+
|
||||
/* Blit from offscreen surface to render target */
|
||||
struct wined3d_color_key old_blt_key = src_surface->container->async.src_blt_color_key;
|
||||
DWORD old_color_key_flags = src_surface->container->async.color_key_flags;
|
||||
+ struct wined3d_context *context;
|
||||
|
||||
TRACE("Blt from surface %p to rendertarget %p\n", src_surface, dst_surface);
|
||||
@@ -4555,8 +4582,10 @@ static void ffp_blit_blit_surface(struct wined3d_device *device, DWORD filter,
|
||||
|
||||
wined3d_texture_set_color_key(src_surface->container, WINED3D_CKEY_SRC_BLT, color_key);
|
||||
|
||||
@ -114,5 +117,5 @@ index 4e2063f..1f97857 100644
|
||||
/* Restore the color key parameters */
|
||||
wined3d_texture_set_color_key(src_surface->container, WINED3D_CKEY_SRC_BLT,
|
||||
--
|
||||
2.3.5
|
||||
2.5.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From ddfa60053cfc7b215fdf041cd0e0b8401bb1a86b Mon Sep 17 00:00:00 2001
|
||||
From 42dbd273c1097c5dcd5fb13e94ee7950551db75d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Mon, 16 Sep 2013 22:44:33 +0200
|
||||
Subject: wined3d: Introduce a function to retrieve resource memory.
|
||||
@ -51,7 +51,7 @@ index b756bf1..40267e7 100644
|
||||
void wined3d_resource_load_location(struct wined3d_resource *resource,
|
||||
struct wined3d_context *context, DWORD location)
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index cf21b54..a6b98f1 100644
|
||||
index 4fe3d72..1f51116 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -479,39 +479,6 @@ static HRESULT surface_create_dib_section(struct wined3d_surface *surface)
|
||||
@ -112,16 +112,16 @@ index cf21b54..a6b98f1 100644
|
||||
wined3d_resource_get_pitch(&src_surface->resource, &src_row_pitch, &src_slice_pitch);
|
||||
|
||||
wined3d_surface_upload_data(dst_surface, gl_info, src_format, src_rect,
|
||||
@@ -2865,7 +2832,7 @@ static void read_from_framebuffer(struct wined3d_surface *surface,
|
||||
@@ -2713,7 +2680,7 @@ static void read_from_framebuffer(struct wined3d_surface *surface,
|
||||
struct wined3d_bo_address data;
|
||||
UINT row_pitch, slice_pitch;
|
||||
DWORD slice_pitch, pitch;
|
||||
|
||||
- surface_get_memory(surface, &data, dst_location);
|
||||
+ wined3d_resource_get_memory(&surface->resource, dst_location, &data);
|
||||
|
||||
/* Context_release does not restore the original context in case of
|
||||
* nested context_acquire calls. Only read_from_framebuffer and
|
||||
@@ -4007,8 +3974,8 @@ static void surface_copy_simple_location(struct wined3d_surface *surface, DWORD
|
||||
@@ -3868,8 +3835,8 @@ static void surface_copy_simple_location(struct wined3d_surface *surface, DWORD
|
||||
struct wined3d_bo_address dst, src;
|
||||
UINT size = surface->resource.size;
|
||||
|
||||
@ -132,7 +132,7 @@ index cf21b54..a6b98f1 100644
|
||||
|
||||
if (dst.buffer_object)
|
||||
{
|
||||
@@ -4220,7 +4187,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -4081,7 +4048,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
surface_remove_pbo(surface, gl_info);
|
||||
}
|
||||
|
||||
@ -142,10 +142,10 @@ index cf21b54..a6b98f1 100644
|
||||
{
|
||||
/* This code is entered for texture formats which need a fixup. */
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index f28994d..a640145 100644
|
||||
index f3ab20f..ab938f0 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2198,6 +2198,8 @@ BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPE
|
||||
@@ -2200,6 +2200,8 @@ BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPE
|
||||
void wined3d_resource_free_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
BYTE *wined3d_resource_get_map_ptr(const struct wined3d_resource *resource,
|
||||
const struct wined3d_context *context, DWORD flags) DECLSPEC_HIDDEN;
|
||||
@ -155,5 +155,5 @@ index f28994d..a640145 100644
|
||||
UINT *slice_pitch) DECLSPEC_HIDDEN;
|
||||
GLbitfield wined3d_resource_gl_map_flags(DWORD d3d_flags) DECLSPEC_HIDDEN;
|
||||
--
|
||||
2.4.5
|
||||
2.5.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From da397c28f35b9220eb4bf258a49b3a778732cd28 Mon Sep 17 00:00:00 2001
|
||||
From 5b260f3eff9c924a8e6cc0b9496c2639dc52e9af Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 19 Sep 2013 14:55:00 +0200
|
||||
Subject: wined3d: Move check_block_align to resource.c
|
||||
@ -6,15 +6,15 @@ Subject: wined3d: Move check_block_align to resource.c
|
||||
---
|
||||
dlls/wined3d/resource.c | 28 ++++++++++++++++++++++++++++
|
||||
dlls/wined3d/surface.c | 27 +++++++++++----------------
|
||||
dlls/wined3d/volume.c | 31 ++-----------------------------
|
||||
dlls/wined3d/volume.c | 30 +-----------------------------
|
||||
dlls/wined3d/wined3d_private.h | 2 ++
|
||||
4 files changed, 43 insertions(+), 45 deletions(-)
|
||||
4 files changed, 42 insertions(+), 45 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
|
||||
index 0ef2155..ddcfdad 100644
|
||||
index 40267e7..c8bbf3d 100644
|
||||
--- a/dlls/wined3d/resource.c
|
||||
+++ b/dlls/wined3d/resource.c
|
||||
@@ -618,3 +618,31 @@ BOOL wined3d_resource_prepare_map_memory(struct wined3d_resource *resource, stru
|
||||
@@ -689,3 +689,31 @@ BOOL wined3d_resource_prepare_map_memory(struct wined3d_resource *resource, stru
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
@ -47,10 +47,10 @@ index 0ef2155..ddcfdad 100644
|
||||
+ return TRUE;
|
||||
+}
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 178a949..0f58be1 100644
|
||||
index a47f1fa..a728e7d 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -1475,23 +1475,18 @@ void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct w
|
||||
@@ -1477,23 +1477,18 @@ void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct w
|
||||
|
||||
static BOOL surface_check_block_align(struct wined3d_surface *surface, const RECT *rect)
|
||||
{
|
||||
@ -86,7 +86,7 @@ index 178a949..0f58be1 100644
|
||||
|
||||
HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const POINT *dst_point,
|
||||
diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
|
||||
index 1cfeb04..4d7b349 100644
|
||||
index 4faa22d..b902b18 100644
|
||||
--- a/dlls/wined3d/volume.c
|
||||
+++ b/dlls/wined3d/volume.c
|
||||
@@ -379,34 +379,6 @@ struct wined3d_resource * CDECL wined3d_volume_get_resource(struct wined3d_volum
|
||||
@ -124,21 +124,20 @@ index 1cfeb04..4d7b349 100644
|
||||
static BOOL wined3d_volume_check_box_dimensions(const struct wined3d_volume *volume,
|
||||
const struct wined3d_box *box)
|
||||
{
|
||||
@@ -457,7 +429,8 @@ HRESULT CDECL wined3d_volume_map(struct wined3d_volume *volume,
|
||||
@@ -457,7 +429,7 @@ HRESULT CDECL wined3d_volume_map(struct wined3d_volume *volume,
|
||||
WARN("Map box is invalid.\n");
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
- if ((fmt_flags & WINED3DFMT_FLAG_BLOCKS) && !volume_check_block_align(volume, box))
|
||||
+ if ((fmt_flags & WINED3DFMT_FLAG_BLOCKS) &&
|
||||
+ !wined3d_resource_check_block_align(&volume->resource, box))
|
||||
+ if ((fmt_flags & WINED3DFMT_FLAG_BLOCKS) && !wined3d_resource_check_block_align(&volume->resource, box))
|
||||
{
|
||||
WARN("Map box is misaligned for %ux%u blocks.\n",
|
||||
format->block_width, format->block_height);
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 96cdac5..855375d 100644
|
||||
index ff07e53..9dab51b 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2155,6 +2155,8 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
|
||||
@@ -2197,6 +2197,8 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
|
||||
void resource_unload(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
DWORD wined3d_resource_access_from_location(DWORD location) DECLSPEC_HIDDEN;
|
||||
BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
@ -148,5 +147,5 @@ index 96cdac5..855375d 100644
|
||||
BYTE *wined3d_resource_get_map_ptr(const struct wined3d_resource *resource,
|
||||
const struct wined3d_context *context, DWORD flags) DECLSPEC_HIDDEN;
|
||||
--
|
||||
2.3.5
|
||||
2.5.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From a1458d85e82bcde47262c579ef3be209a1ee1324 Mon Sep 17 00:00:00 2001
|
||||
From 4e5db60def2e093e529a2f7b8c5c0c081fd48723 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Wed, 10 Apr 2013 17:16:02 +0200
|
||||
Subject: wined3d: Send light updates through the command stream
|
||||
@ -10,7 +10,7 @@ Subject: wined3d: Send light updates through the command stream
|
||||
3 files changed, 174 insertions(+), 65 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 85bc039..cff6212 100644
|
||||
index 434ce9a..562323e 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -63,7 +63,6 @@ enum wined3d_cs_op
|
||||
@ -63,7 +63,7 @@ index 85bc039..cff6212 100644
|
||||
/* FIXME: The list synchronization probably isn't particularly fast. */
|
||||
static void wined3d_cs_list_enqueue(struct wined3d_cs_list *list, struct wined3d_cs_block *block)
|
||||
{
|
||||
@@ -996,35 +1004,6 @@ void wined3d_cs_emit_set_texture(struct wined3d_cs *cs, UINT stage, struct wined
|
||||
@@ -997,35 +1005,6 @@ void wined3d_cs_emit_set_texture(struct wined3d_cs *cs, UINT stage, struct wined
|
||||
cs->ops->submit(cs);
|
||||
}
|
||||
|
||||
@ -99,7 +99,7 @@ index 85bc039..cff6212 100644
|
||||
static UINT wined3d_cs_exec_set_shader_resource_view(struct wined3d_cs *cs, const void *data)
|
||||
{
|
||||
const struct wined3d_cs_set_shader_resource_view *op = data;
|
||||
@@ -1584,6 +1563,152 @@ void wined3d_cs_emit_set_primitive_type(struct wined3d_cs *cs, GLenum primitive_
|
||||
@@ -1585,6 +1564,152 @@ void wined3d_cs_emit_set_primitive_type(struct wined3d_cs *cs, GLenum primitive_
|
||||
cs->ops->submit(cs);
|
||||
}
|
||||
|
||||
@ -132,12 +132,6 @@ index 85bc039..cff6212 100644
|
||||
+ object->OriginalIndex = light_idx;
|
||||
+ }
|
||||
+
|
||||
+ object->OriginalParms = op->light.OriginalParms;
|
||||
+ memcpy(&object->position, &op->light.position, sizeof(object->position));
|
||||
+ memcpy(&object->direction, &op->light.direction, sizeof(object->direction));
|
||||
+ object->exponent = op->light.exponent;
|
||||
+ object->cutoff = op->light.cutoff;
|
||||
+
|
||||
+ /* Update the live definitions if the light is currently assigned a glIndex. */
|
||||
+ if (object->glIndex != -1)
|
||||
+ {
|
||||
@ -146,6 +140,12 @@ index 85bc039..cff6212 100644
|
||||
+ device_invalidate_state(cs->device, STATE_ACTIVELIGHT(object->glIndex));
|
||||
+ }
|
||||
+
|
||||
+ object->OriginalParms = op->light.OriginalParms;
|
||||
+ object->position = op->light.position;
|
||||
+ object->direction = op->light.direction;
|
||||
+ object->exponent = op->light.exponent;
|
||||
+ object->cutoff = op->light.cutoff;
|
||||
+
|
||||
+ return sizeof(*op);
|
||||
+}
|
||||
+
|
||||
@ -252,7 +252,7 @@ index 85bc039..cff6212 100644
|
||||
static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_FENCE */ wined3d_cs_exec_fence,
|
||||
@@ -1613,7 +1738,6 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -1614,7 +1739,6 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_SET_COLOR_KEY */ wined3d_cs_exec_set_color_key,
|
||||
/* WINED3D_CS_OP_SET_MATERIAL */ wined3d_cs_exec_set_material,
|
||||
/* WINED3D_CS_OP_RESET_STATE */ wined3d_cs_exec_reset_state,
|
||||
@ -260,7 +260,7 @@ index 85bc039..cff6212 100644
|
||||
/* WINED3D_CS_OP_SET_VS_CONSTS_F */ wined3d_cs_exec_set_vs_consts_f,
|
||||
/* WINED3D_CS_OP_SET_VS_CONSTS_B */ wined3d_cs_exec_set_vs_consts_b,
|
||||
/* WINED3D_CS_OP_SET_VS_CONSTS_I */ wined3d_cs_exec_set_vs_consts_i,
|
||||
@@ -1623,6 +1747,8 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -1624,6 +1748,8 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_GLFINISH */ wined3d_cs_exec_glfinish,
|
||||
/* WINED3D_CS_OP_SET_BASE_VERTEX_INDEX */ wined3d_cs_exec_set_base_vertex_index,
|
||||
/* WINED3D_CS_OP_SET_PRIMITIVE_TYPE */ wined3d_cs_exec_set_primitive_type,
|
||||
@ -270,10 +270,10 @@ index 85bc039..cff6212 100644
|
||||
|
||||
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size)
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 2a40538..de1bbfb 100644
|
||||
index d2ce327..74bff19 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -1470,14 +1470,6 @@ HRESULT CDECL wined3d_device_set_light(struct wined3d_device *device,
|
||||
@@ -1469,14 +1469,6 @@ HRESULT CDECL wined3d_device_set_light(struct wined3d_device *device,
|
||||
TRACE("... Range(%f), Falloff(%f), Theta(%f), Phi(%f)\n",
|
||||
light->range, light->falloff, light->theta, light->phi);
|
||||
|
||||
@ -288,7 +288,7 @@ index 2a40538..de1bbfb 100644
|
||||
/* Save away the information. */
|
||||
object->OriginalParms = *light;
|
||||
|
||||
@@ -1550,6 +1542,9 @@ HRESULT CDECL wined3d_device_set_light(struct wined3d_device *device,
|
||||
@@ -1556,6 +1548,9 @@ HRESULT CDECL wined3d_device_set_light(struct wined3d_device *device,
|
||||
FIXME("Unrecognized light type %#x.\n", light->type);
|
||||
}
|
||||
|
||||
@ -298,7 +298,7 @@ index 2a40538..de1bbfb 100644
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
@@ -1622,12 +1617,6 @@ HRESULT CDECL wined3d_device_set_light_enable(struct wined3d_device *device, UIN
|
||||
@@ -1628,12 +1623,6 @@ HRESULT CDECL wined3d_device_set_light_enable(struct wined3d_device *device, UIN
|
||||
{
|
||||
if (light_info->glIndex != -1)
|
||||
{
|
||||
@ -311,7 +311,7 @@ index 2a40538..de1bbfb 100644
|
||||
device->update_state->lights[light_info->glIndex] = NULL;
|
||||
light_info->glIndex = -1;
|
||||
}
|
||||
@@ -1669,16 +1658,12 @@ HRESULT CDECL wined3d_device_set_light_enable(struct wined3d_device *device, UIN
|
||||
@@ -1675,16 +1664,12 @@ HRESULT CDECL wined3d_device_set_light_enable(struct wined3d_device *device, UIN
|
||||
WARN("Too many concurrently active lights\n");
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@ -331,7 +331,7 @@ index 2a40538..de1bbfb 100644
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
@@ -3405,7 +3390,6 @@ HRESULT CDECL wined3d_device_draw_primitive(struct wined3d_device *device, UINT
|
||||
@@ -3395,7 +3380,6 @@ HRESULT CDECL wined3d_device_draw_primitive(struct wined3d_device *device, UINT
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
@ -339,7 +339,7 @@ index 2a40538..de1bbfb 100644
|
||||
wined3d_cs_emit_draw(device->cs, start_vertex, vertex_count, 0, 0, FALSE);
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -3440,8 +3424,6 @@ HRESULT CDECL wined3d_device_draw_indexed_primitive(struct wined3d_device *devic
|
||||
@@ -3430,8 +3414,6 @@ HRESULT CDECL wined3d_device_draw_indexed_primitive(struct wined3d_device *devic
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
@ -348,7 +348,7 @@ index 2a40538..de1bbfb 100644
|
||||
wined3d_cs_emit_draw(device->cs, start_idx, index_count, 0, 0, TRUE);
|
||||
|
||||
return WINED3D_OK;
|
||||
@@ -3453,7 +3435,6 @@ void CDECL wined3d_device_draw_indexed_primitive_instanced(struct wined3d_device
|
||||
@@ -3443,7 +3425,6 @@ void CDECL wined3d_device_draw_indexed_primitive_instanced(struct wined3d_device
|
||||
TRACE("device %p, start_idx %u, index_count %u, start_instance %u, instance_count %u.\n",
|
||||
device, start_idx, index_count, start_instance, instance_count);
|
||||
|
||||
@ -357,10 +357,10 @@ index 2a40538..de1bbfb 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 9eb612d..7b2eaec 100644
|
||||
index 13e28d4..5862540 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2581,7 +2581,9 @@ struct wined3d_cs_block
|
||||
@@ -2622,7 +2622,9 @@ struct wined3d_cs_block
|
||||
{
|
||||
struct list entry;
|
||||
UINT pos;
|
||||
@ -371,7 +371,7 @@ index 9eb612d..7b2eaec 100644
|
||||
};
|
||||
|
||||
struct wined3d_cs_ops
|
||||
@@ -2626,8 +2628,6 @@ void wined3d_cs_emit_set_color_key(struct wined3d_cs *cs, struct wined3d_texture
|
||||
@@ -2667,8 +2669,6 @@ void wined3d_cs_emit_set_color_key(struct wined3d_cs *cs, struct wined3d_texture
|
||||
WORD flags, const struct wined3d_color_key *color_key) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_set_constant_buffer(struct wined3d_cs *cs, enum wined3d_shader_type type,
|
||||
UINT cb_idx, struct wined3d_buffer *buffer) DECLSPEC_HIDDEN;
|
||||
@ -380,7 +380,7 @@ index 9eb612d..7b2eaec 100644
|
||||
void wined3d_cs_emit_set_depth_stencil_view(struct wined3d_cs *cs,
|
||||
struct wined3d_rendertarget_view *view) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_set_index_buffer(struct wined3d_cs *cs, struct wined3d_buffer *buffer,
|
||||
@@ -2673,6 +2673,8 @@ void wined3d_cs_emit_set_base_vertex_index(struct wined3d_cs *cs,
|
||||
@@ -2714,6 +2714,8 @@ void wined3d_cs_emit_set_base_vertex_index(struct wined3d_cs *cs,
|
||||
UINT base_vertex_index) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_set_primitive_type(struct wined3d_cs *cs,
|
||||
GLenum primitive_type) DECLSPEC_HIDDEN;
|
||||
@ -390,5 +390,5 @@ index 9eb612d..7b2eaec 100644
|
||||
/* 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
|
||||
--
|
||||
2.3.5
|
||||
2.5.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 3783cc16737b9ebebc9b00d90e981207843bc01e Mon Sep 17 00:00:00 2001
|
||||
From ff38f01388324b055bcda33d46929169f76ce3eb Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Mon, 29 Apr 2013 18:49:53 +0200
|
||||
Subject: wined3d: Send blits through the command stream.
|
||||
@ -7,12 +7,12 @@ This needs more work. This patch breaks error handling, and the split
|
||||
between surface_blt and surface_blt_ugly isn't particularly nice.
|
||||
---
|
||||
dlls/wined3d/cs.c | 50 +++++++
|
||||
dlls/wined3d/surface.c | 307 ++++++++++++++++++++++-------------------
|
||||
dlls/wined3d/surface.c | 309 +++++++++++++++++++++++------------------
|
||||
dlls/wined3d/wined3d_private.h | 8 ++
|
||||
3 files changed, 226 insertions(+), 139 deletions(-)
|
||||
3 files changed, 228 insertions(+), 139 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 77bb485..b5b5ece 100644
|
||||
index fcc5ed7..550206f 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -74,6 +74,7 @@ enum wined3d_cs_op
|
||||
@ -42,7 +42,7 @@ index 77bb485..b5b5ece 100644
|
||||
/* FIXME: The list synchronization probably isn't particularly fast. */
|
||||
static void wined3d_cs_list_enqueue(struct wined3d_cs_list *list, struct wined3d_cs_block *block)
|
||||
{
|
||||
@@ -1506,6 +1519,9 @@ static UINT wined3d_cs_exec_glfinish(struct wined3d_cs *cs, const void *data)
|
||||
@@ -1507,6 +1520,9 @@ static UINT wined3d_cs_exec_glfinish(struct wined3d_cs *cs, const void *data)
|
||||
struct wined3d_device *device = cs->device;
|
||||
struct wined3d_context *context;
|
||||
|
||||
@ -52,7 +52,7 @@ index 77bb485..b5b5ece 100644
|
||||
context = context_acquire(device, NULL);
|
||||
context->gl_info->gl_ops.gl.p_glFinish();
|
||||
context_release(context);
|
||||
@@ -1717,6 +1733,38 @@ void wined3d_cs_emit_set_light_enable(struct wined3d_cs *cs, UINT idx, BOOL enab
|
||||
@@ -1718,6 +1734,38 @@ void wined3d_cs_emit_set_light_enable(struct wined3d_cs *cs, UINT idx, BOOL enab
|
||||
cs->ops->submit(cs);
|
||||
}
|
||||
|
||||
@ -91,7 +91,7 @@ index 77bb485..b5b5ece 100644
|
||||
static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_FENCE */ wined3d_cs_exec_fence,
|
||||
@@ -1757,6 +1805,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -1758,6 +1806,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_SET_PRIMITIVE_TYPE */ wined3d_cs_exec_set_primitive_type,
|
||||
/* WINED3D_CS_OP_SET_LIGHT */ wined3d_cs_exec_set_light,
|
||||
/* WINED3D_CS_OP_SET_LIGHT_ENABLE */ wined3d_cs_exec_set_light_enable,
|
||||
@ -99,7 +99,7 @@ index 77bb485..b5b5ece 100644
|
||||
};
|
||||
|
||||
static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size)
|
||||
@@ -1831,6 +1880,7 @@ static DWORD WINAPI wined3d_cs_run(void *thread_param)
|
||||
@@ -1832,6 +1881,7 @@ static DWORD WINAPI wined3d_cs_run(void *thread_param)
|
||||
|
||||
TRACE("Started.\n");
|
||||
|
||||
@ -108,10 +108,10 @@ index 77bb485..b5b5ece 100644
|
||||
{
|
||||
struct wined3d_cs_block *block;
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 0c25884..8883c9c 100644
|
||||
index bd048c2..8cec730 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -5003,14 +5003,13 @@ const struct blit_shader cpu_blit = {
|
||||
@@ -5002,14 +5002,13 @@ const struct blit_shader cpu_blit = {
|
||||
cpu_blit_blit_surface,
|
||||
};
|
||||
|
||||
@ -128,7 +128,7 @@ index 0c25884..8883c9c 100644
|
||||
BOOL scale, convert;
|
||||
|
||||
static const DWORD simple_blit = WINEDDBLT_ASYNC
|
||||
@@ -5021,111 +5020,6 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
@@ -5020,111 +5019,6 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
| WINEDDBLT_DEPTHFILL
|
||||
| WINEDDBLT_DONOTWAIT;
|
||||
|
||||
@ -240,7 +240,7 @@ index 0c25884..8883c9c 100644
|
||||
if (!device->d3d_initialized)
|
||||
{
|
||||
WARN("D3D not initialized, using fallback.\n");
|
||||
@@ -5168,8 +5062,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
@@ -5167,8 +5061,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
}
|
||||
|
||||
scale = src_surface
|
||||
@ -251,7 +251,7 @@ index 0c25884..8883c9c 100644
|
||||
convert = src_surface && src_surface->resource.format->id != dst_surface->resource.format->id;
|
||||
|
||||
dst_ds_flags = dst_surface->container->resource.format_flags
|
||||
@@ -5189,22 +5083,16 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
@@ -5188,22 +5082,16 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
TRACE("Depth fill.\n");
|
||||
|
||||
if (!surface_convert_depth_to_float(dst_surface, fx->u5.dwFillDepth, &depth))
|
||||
@ -279,7 +279,7 @@ index 0c25884..8883c9c 100644
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -5235,8 +5123,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
@@ -5234,8 +5122,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
palette, fx->u5.dwFillColor, &color))
|
||||
goto fallback;
|
||||
|
||||
@ -290,7 +290,7 @@ index 0c25884..8883c9c 100644
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -5264,9 +5152,9 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
@@ -5263,9 +5151,9 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
TRACE("Not doing upload because of format conversion.\n");
|
||||
else
|
||||
{
|
||||
@ -302,7 +302,7 @@ index 0c25884..8883c9c 100644
|
||||
{
|
||||
if (!wined3d_resource_is_offscreen(&dst_surface->container->resource))
|
||||
{
|
||||
@@ -5275,7 +5163,7 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
@@ -5274,7 +5162,7 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
dst_surface->container->resource.draw_binding);
|
||||
context_release(context);
|
||||
}
|
||||
@ -311,7 +311,7 @@ index 0c25884..8883c9c 100644
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5299,50 +5187,191 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
@@ -5298,50 +5186,193 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
wined3d_swapchain_present(dst_swapchain, NULL, NULL, dst_swapchain->win_handle, NULL, 0);
|
||||
dst_swapchain->desc.swap_effect = swap_effect;
|
||||
|
||||
@ -469,8 +469,10 @@ index 0c25884..8883c9c 100644
|
||||
+ return WINEDDERR_INVALIDRECT;
|
||||
+ }
|
||||
+
|
||||
+ dst_ds_flags = dst_surface->container->resource.format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL);
|
||||
+ src_ds_flags = src_surface->container->resource.format_flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL);
|
||||
+ dst_ds_flags = dst_surface->container->resource.format_flags
|
||||
+ & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL);
|
||||
+ src_ds_flags = src_surface->container->resource.format_flags
|
||||
+ & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL);
|
||||
+ if (src_ds_flags != dst_ds_flags)
|
||||
+ {
|
||||
+ WARN("Rejecting depth / stencil blit between incompatible formats.\n");
|
||||
@ -517,10 +519,10 @@ index 0c25884..8883c9c 100644
|
||||
|
||||
static const struct wined3d_resource_ops surface_resource_ops =
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index ff3d49b..9fc2181 100644
|
||||
index e153b0b..77317a5 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2463,6 +2463,9 @@ void wined3d_surface_destroy(struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
||||
@@ -2491,6 +2491,9 @@ void wined3d_surface_destroy(struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
||||
void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info,
|
||||
const struct wined3d_format *format, const RECT *src_rect, UINT src_pitch, const POINT *dst_point,
|
||||
BOOL srgb, const struct wined3d_const_bo_address *data) DECLSPEC_HIDDEN;
|
||||
@ -530,7 +532,7 @@ index ff3d49b..9fc2181 100644
|
||||
|
||||
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;
|
||||
@@ -2612,6 +2615,7 @@ struct wined3d_cs
|
||||
@@ -2640,6 +2643,7 @@ struct wined3d_cs
|
||||
struct wined3d_device *device;
|
||||
struct wined3d_state state;
|
||||
HANDLE thread;
|
||||
@ -538,7 +540,7 @@ index ff3d49b..9fc2181 100644
|
||||
DWORD tls_idx;
|
||||
struct wined3d_surface *onscreen_depth_stencil;
|
||||
|
||||
@@ -2690,6 +2694,10 @@ void wined3d_cs_emit_set_primitive_type(struct wined3d_cs *cs,
|
||||
@@ -2718,6 +2722,10 @@ void wined3d_cs_emit_set_primitive_type(struct wined3d_cs *cs,
|
||||
GLenum primitive_type) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_set_light(struct wined3d_cs *cs, const struct wined3d_light_info *light) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_set_light_enable(struct wined3d_cs *cs, UINT idx, BOOL enable) DECLSPEC_HIDDEN;
|
||||
@ -550,5 +552,5 @@ index ff3d49b..9fc2181 100644
|
||||
/* 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
|
||||
--
|
||||
2.4.2
|
||||
2.5.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From b642658723b5728d3ea2384f6f40680436bcdeb0 Mon Sep 17 00:00:00 2001
|
||||
From 6e1f3fcac566581cd786a66405633ed4a674793d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Wed, 20 Aug 2014 14:14:23 +0200
|
||||
Subject: wined3d: Put update_surface checks back in place
|
||||
@ -6,16 +6,16 @@ Subject: wined3d: Put update_surface checks back in place
|
||||
Unfortunately I can't remove the code from surface_update_from_surface
|
||||
yet because blits depend on them.
|
||||
---
|
||||
dlls/wined3d/device.c | 66 ++++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/wined3d/device.c | 68 ++++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/wined3d/surface.c | 2 +-
|
||||
dlls/wined3d/wined3d_private.h | 1 +
|
||||
3 files changed, 68 insertions(+), 1 deletion(-)
|
||||
3 files changed, 70 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 65a34a5..71be9eb 100644
|
||||
index b95dfde..f0b2849 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -3788,6 +3788,13 @@ HRESULT CDECL wined3d_device_update_surface(struct wined3d_device *device,
|
||||
@@ -3773,6 +3773,13 @@ HRESULT CDECL wined3d_device_update_surface(struct wined3d_device *device,
|
||||
struct wined3d_surface *src_surface, const RECT *src_rect,
|
||||
struct wined3d_surface *dst_surface, const POINT *dst_point)
|
||||
{
|
||||
@ -29,7 +29,7 @@ index 65a34a5..71be9eb 100644
|
||||
TRACE("device %p, src_surface %p, src_rect %s, dst_surface %p, dst_point %s.\n",
|
||||
device, src_surface, wine_dbgstr_rect(src_rect),
|
||||
dst_surface, wine_dbgstr_point(dst_point));
|
||||
@@ -3799,6 +3806,65 @@ HRESULT CDECL wined3d_device_update_surface(struct wined3d_device *device,
|
||||
@@ -3784,6 +3791,67 @@ HRESULT CDECL wined3d_device_update_surface(struct wined3d_device *device,
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
@ -79,14 +79,16 @@ index 65a34a5..71be9eb 100644
|
||||
+ return WINED3DERR_INVALIDCALL;
|
||||
+ }
|
||||
+
|
||||
+ if ((src_surface->container->resource.format_flags & WINED3DFMT_FLAG_BLOCKS) && !surface_check_block_align(src_surface, src_rect))
|
||||
+ if ((src_surface->container->resource.format_flags & WINED3DFMT_FLAG_BLOCKS)
|
||||
+ && !surface_check_block_align(src_surface, src_rect))
|
||||
+ {
|
||||
+ WARN("Source rectangle not block-aligned.\n");
|
||||
+ return WINED3DERR_INVALIDCALL;
|
||||
+ }
|
||||
+
|
||||
+ SetRect(&dst_rect, dst_point->x, dst_point->y, dst_point->x + update_w, dst_point->y + update_h);
|
||||
+ if ((dst_surface->container->resource.format_flags & WINED3DFMT_FLAG_BLOCKS) && !surface_check_block_align(dst_surface, &dst_rect))
|
||||
+ if ((dst_surface->container->resource.format_flags & WINED3DFMT_FLAG_BLOCKS)
|
||||
+ && !surface_check_block_align(dst_surface, &dst_rect))
|
||||
+ {
|
||||
+ WARN("Destination rectangle not block-aligned.\n");
|
||||
+ return WINED3DERR_INVALIDCALL;
|
||||
@ -96,7 +98,7 @@ index 65a34a5..71be9eb 100644
|
||||
{
|
||||
FIXME("Waiting for cs.\n");
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 8883c9c..676200d 100644
|
||||
index 8cec730..1376d97 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -1366,7 +1366,7 @@ void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct w
|
||||
@ -109,10 +111,10 @@ index 8883c9c..676200d 100644
|
||||
struct wined3d_box box;
|
||||
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 9fc2181..5828bd3 100644
|
||||
index 77317a5..e09927b6 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2466,6 +2466,7 @@ void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct w
|
||||
@@ -2494,6 +2494,7 @@ void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct w
|
||||
void surface_blt_ugly(struct wined3d_surface *dst_surface, const RECT *dst_rect_in,
|
||||
struct wined3d_surface *src_surface, const RECT *src_rect_in, DWORD flags,
|
||||
const WINEDDBLTFX *fx, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
|
||||
@ -121,5 +123,5 @@ index 9fc2181..5828bd3 100644
|
||||
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;
|
||||
--
|
||||
2.4.2
|
||||
2.5.1
|
||||
|
||||
|
@ -1,31 +0,0 @@
|
||||
From b41844b91cb9817f378c3c666b3129c3c870d014 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 4 Jul 2013 20:40:39 +0200
|
||||
Subject: wined3d: Add cs waiting debug code
|
||||
|
||||
---
|
||||
dlls/wined3d/texture.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index eb4996b..240e8fa 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -610,6 +610,14 @@ HRESULT CDECL wined3d_texture_set_color_key(struct wined3d_texture *texture,
|
||||
return WINED3DERR_INVALIDCALL;
|
||||
}
|
||||
|
||||
+ /*
|
||||
+ if (wined3d_settings.cs_multithreaded)
|
||||
+ {
|
||||
+ FIXME("waiting for cs\n");
|
||||
+ texture->resource.device->cs->ops->finish(texture->resource.device->cs);
|
||||
+ }
|
||||
+ */
|
||||
+
|
||||
wined3d_cs_emit_set_color_key(device->cs, texture, flags, color_key);
|
||||
|
||||
return WINED3D_OK;
|
||||
--
|
||||
2.3.5
|
||||
|
@ -1,16 +1,16 @@
|
||||
From 3c2152778b13105e423a33889692c3b12f58653b Mon Sep 17 00:00:00 2001
|
||||
From 70b1167ff814efa7b8e397fdaa8fdfd9988a4868 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Sat, 6 Jul 2013 19:18:48 +0200
|
||||
Subject: wined3d: Poll queries automatically in the CS
|
||||
|
||||
---
|
||||
dlls/wined3d/cs.c | 76 ++++++--------
|
||||
dlls/wined3d/query.c | 221 ++++++++++++++++++++++++++---------------
|
||||
dlls/wined3d/query.c | 225 ++++++++++++++++++++++++++---------------
|
||||
dlls/wined3d/wined3d_private.h | 7 +-
|
||||
3 files changed, 178 insertions(+), 126 deletions(-)
|
||||
3 files changed, 180 insertions(+), 128 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index d97ef5b..8256707 100644
|
||||
index 0c8284e..29d963e 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -69,7 +69,6 @@ enum wined3d_cs_op
|
||||
@ -38,7 +38,7 @@ index d97ef5b..8256707 100644
|
||||
static void wined3d_cs_submit(struct wined3d_cs *cs, size_t size)
|
||||
{
|
||||
LONG new_val = (cs->queue.head + size) & (WINED3D_CS_QUEUE_SIZE - 1);
|
||||
@@ -1822,8 +1811,9 @@ static UINT wined3d_cs_exec_query_issue(struct wined3d_cs *cs, const void *data)
|
||||
@@ -1823,8 +1812,9 @@ static UINT wined3d_cs_exec_query_issue(struct wined3d_cs *cs, const void *data)
|
||||
|
||||
query->query_ops->query_issue(query, op->flags);
|
||||
|
||||
@ -50,7 +50,7 @@ index d97ef5b..8256707 100644
|
||||
|
||||
return sizeof(*op);
|
||||
}
|
||||
@@ -1840,37 +1830,6 @@ void wined3d_cs_emit_query_issue(struct wined3d_cs *cs, struct wined3d_query *qu
|
||||
@@ -1841,37 +1831,6 @@ void wined3d_cs_emit_query_issue(struct wined3d_cs *cs, struct wined3d_query *qu
|
||||
cs->ops->submit(cs, sizeof(*op));
|
||||
}
|
||||
|
||||
@ -88,7 +88,7 @@ index d97ef5b..8256707 100644
|
||||
static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_NOP */ wined3d_cs_exec_nop,
|
||||
@@ -1918,7 +1877,6 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -1919,7 +1878,6 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_RESOURCE_MAP */ wined3d_cs_exec_resource_map,
|
||||
/* WINED3D_CS_OP_RESOURCE_UNMAP */ wined3d_cs_exec_resource_unmap,
|
||||
/* WINED3D_CS_OP_QUERY_ISSUE */ wined3d_cs_exec_query_issue,
|
||||
@ -96,7 +96,7 @@ index d97ef5b..8256707 100644
|
||||
};
|
||||
|
||||
static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size)
|
||||
@@ -2033,17 +1991,45 @@ void wined3d_cs_switch_onscreen_ds(struct wined3d_cs *cs,
|
||||
@@ -2034,17 +1992,45 @@ void wined3d_cs_switch_onscreen_ds(struct wined3d_cs *cs,
|
||||
wined3d_surface_incref(cs->onscreen_depth_stencil);
|
||||
}
|
||||
|
||||
@ -143,7 +143,7 @@ index d97ef5b..8256707 100644
|
||||
{
|
||||
continue;
|
||||
diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
|
||||
index 9bdb35e..9f1f5ad 100644
|
||||
index 9bdb35e..690903e 100644
|
||||
--- a/dlls/wined3d/query.c
|
||||
+++ b/dlls/wined3d/query.c
|
||||
@@ -241,6 +241,15 @@ ULONG CDECL wined3d_query_decref(struct wined3d_query *query)
|
||||
@ -406,10 +406,10 @@ index 9bdb35e..9f1f5ad 100644
|
||||
GLuint available;
|
||||
GLuint64 timestamp;
|
||||
- HRESULT res;
|
||||
-
|
||||
- TRACE("query %p, data %p, size %#x, flags %#x.\n", query, data, size, flags);
|
||||
+ BOOL ret;
|
||||
|
||||
- TRACE("query %p, data %p, size %#x, flags %#x.\n", query, data, size, flags);
|
||||
-
|
||||
- if (!tq->context)
|
||||
- query->state = QUERY_CREATED;
|
||||
-
|
||||
@ -468,7 +468,7 @@ index 9bdb35e..9f1f5ad 100644
|
||||
}
|
||||
|
||||
static void wined3d_timestamp_query_ops_issue(struct wined3d_query *query, DWORD flags)
|
||||
@@ -657,7 +709,6 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
|
||||
@@ -657,15 +709,14 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
|
||||
void *data, DWORD size, DWORD flags)
|
||||
{
|
||||
TRACE("query %p, data %p, size %#x, flags %#x.\n", query, data, size, flags);
|
||||
@ -476,6 +476,16 @@ index 9bdb35e..9f1f5ad 100644
|
||||
if (query->type == WINED3D_QUERY_TYPE_TIMESTAMP_DISJOINT)
|
||||
{
|
||||
static const struct wined3d_query_data_timestamp_disjoint disjoint_data = {1000 * 1000 * 1000, FALSE};
|
||||
|
||||
if (query->state == QUERY_BUILDING)
|
||||
{
|
||||
- TRACE("Query is building, returning S_FALSE.\n");
|
||||
- return S_FALSE;
|
||||
+ TRACE("Query is building, returning S_FALSE.\n");
|
||||
+ return S_FALSE;
|
||||
}
|
||||
|
||||
fill_query_data(data, size, &disjoint_data, sizeof(disjoint_data));
|
||||
@@ -679,6 +730,11 @@ static HRESULT wined3d_timestamp_disjoint_query_ops_get_data(struct wined3d_quer
|
||||
return S_OK;
|
||||
}
|
||||
@ -526,10 +536,10 @@ index 9bdb35e..9f1f5ad 100644
|
||||
return WINED3D_OK;
|
||||
}
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 56d9b0c..4c4ee51 100644
|
||||
index dd230d6..ebd928a 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -1090,6 +1090,7 @@ struct wined3d_occlusion_query
|
||||
@@ -1101,6 +1101,7 @@ struct wined3d_occlusion_query
|
||||
struct list entry;
|
||||
GLuint id;
|
||||
struct wined3d_context *context;
|
||||
@ -537,7 +547,7 @@ index 56d9b0c..4c4ee51 100644
|
||||
};
|
||||
|
||||
union wined3d_gl_query_object
|
||||
@@ -1125,6 +1126,7 @@ struct wined3d_timestamp_query
|
||||
@@ -1136,6 +1137,7 @@ struct wined3d_timestamp_query
|
||||
struct list entry;
|
||||
GLuint id;
|
||||
struct wined3d_context *context;
|
||||
@ -545,7 +555,7 @@ index 56d9b0c..4c4ee51 100644
|
||||
};
|
||||
|
||||
void context_alloc_timestamp_query(struct wined3d_context *context, struct wined3d_timestamp_query *query) DECLSPEC_HIDDEN;
|
||||
@@ -2610,6 +2612,7 @@ struct wined3d_cs
|
||||
@@ -2651,6 +2653,7 @@ struct wined3d_cs
|
||||
struct wined3d_cs_queue queue;
|
||||
|
||||
LONG pending_presents;
|
||||
@ -553,7 +563,7 @@ index 56d9b0c..4c4ee51 100644
|
||||
};
|
||||
|
||||
struct wined3d_cs *wined3d_cs_create(struct wined3d_device *device) DECLSPEC_HIDDEN;
|
||||
@@ -2705,6 +2708,7 @@ enum query_state {
|
||||
@@ -2746,6 +2749,7 @@ enum query_state {
|
||||
struct wined3d_query_ops
|
||||
{
|
||||
HRESULT (*query_get_data)(struct wined3d_query *query, void *data, DWORD data_size, DWORD flags);
|
||||
@ -561,7 +571,7 @@ index 56d9b0c..4c4ee51 100644
|
||||
void (*query_issue)(struct wined3d_query *query, DWORD flags);
|
||||
};
|
||||
|
||||
@@ -2720,7 +2724,8 @@ struct wined3d_query
|
||||
@@ -2761,7 +2765,8 @@ struct wined3d_query
|
||||
DWORD data_size;
|
||||
void *extendedData;
|
||||
|
||||
@ -572,5 +582,5 @@ index 56d9b0c..4c4ee51 100644
|
||||
|
||||
/* TODO: Add tests and support for FLOAT16_4 POSITIONT, D3DCOLOR position, other
|
||||
--
|
||||
2.3.7
|
||||
2.5.1
|
||||
|
@ -1,16 +1,16 @@
|
||||
From 59bc0b8c16cd0e7c3a1d899c140c88ccba9f99ad Mon Sep 17 00:00:00 2001
|
||||
From a67a9a39ffcf23526dbabc064d02520c41a5ecdb Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 1 Aug 2013 00:33:48 +0200
|
||||
Subject: wined3d: Send update_texture calls through the CS
|
||||
|
||||
---
|
||||
dlls/wined3d/cs.c | 33 ++++++++++++
|
||||
dlls/wined3d/device.c | 114 ++++++++++++++++++-----------------------
|
||||
dlls/wined3d/device.c | 119 +++++++++++++++++++----------------------
|
||||
dlls/wined3d/wined3d_private.h | 4 ++
|
||||
3 files changed, 86 insertions(+), 65 deletions(-)
|
||||
3 files changed, 91 insertions(+), 65 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 4210ddf..93e6e5f 100644
|
||||
index f17a222..31f7087 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -73,6 +73,7 @@ enum wined3d_cs_op
|
||||
@ -34,7 +34,7 @@ index 4210ddf..93e6e5f 100644
|
||||
static void wined3d_cs_mt_submit(struct wined3d_cs *cs, size_t size)
|
||||
{
|
||||
LONG new_val = (cs->queue.head + size) & (WINED3D_CS_QUEUE_SIZE - 1);
|
||||
@@ -2001,6 +2008,31 @@ void wined3d_cs_emit_surface_preload(struct wined3d_cs *cs, struct wined3d_surfa
|
||||
@@ -2002,6 +2009,31 @@ void wined3d_cs_emit_surface_preload(struct wined3d_cs *cs, struct wined3d_surfa
|
||||
cs->ops->submit(cs, sizeof(*op));
|
||||
}
|
||||
|
||||
@ -66,7 +66,7 @@ index 4210ddf..93e6e5f 100644
|
||||
static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_NOP */ wined3d_cs_exec_nop,
|
||||
@@ -2052,6 +2084,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -2053,6 +2085,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_UPDATE_SURFACE */ wined3d_cs_exec_update_surface,
|
||||
/* WINED3D_CS_OP_TEXTURE_PRELOAD */ wined3d_cs_exec_texture_preload,
|
||||
/* WINED3D_CS_OP_SURFACE_PRELOAD */ wined3d_cs_exec_surface_preload,
|
||||
@ -75,10 +75,10 @@ index 4210ddf..93e6e5f 100644
|
||||
|
||||
static inline void *_wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, BOOL prio)
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 0e4e2ba..c55505e 100644
|
||||
index d302b17..e7c5bcc 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -3430,16 +3430,15 @@ void CDECL wined3d_device_draw_indexed_primitive_instanced(struct wined3d_device
|
||||
@@ -3420,16 +3420,15 @@ void CDECL wined3d_device_draw_indexed_primitive_instanced(struct wined3d_device
|
||||
}
|
||||
|
||||
/* This is a helper function for UpdateTexture, there is no UpdateVolume method in D3D. */
|
||||
@ -98,7 +98,7 @@ index 0e4e2ba..c55505e 100644
|
||||
|
||||
if (src_volume->resource.format != dst_volume->resource.format)
|
||||
{
|
||||
@@ -3457,8 +3456,6 @@ static HRESULT device_update_volume(struct wined3d_device *device,
|
||||
@@ -3447,8 +3446,6 @@ static HRESULT device_update_volume(struct wined3d_device *device,
|
||||
if (FAILED(hr = wined3d_volume_map(src_volume, &src, NULL, WINED3D_MAP_READONLY)))
|
||||
return hr;
|
||||
|
||||
@ -107,7 +107,7 @@ index 0e4e2ba..c55505e 100644
|
||||
/* Only a prepare, since we're uploading the entire volume. */
|
||||
wined3d_texture_prepare_texture(dst_volume->container, context, FALSE);
|
||||
wined3d_texture_bind_and_dirtify(dst_volume->container, context, FALSE);
|
||||
@@ -3468,48 +3465,17 @@ static HRESULT device_update_volume(struct wined3d_device *device,
|
||||
@@ -3458,48 +3455,17 @@ static HRESULT device_update_volume(struct wined3d_device *device,
|
||||
wined3d_volume_upload_data(dst_volume, context, &data);
|
||||
wined3d_resource_invalidate_location(&dst_volume->resource, ~WINED3D_LOCATION_TEXTURE_RGB);
|
||||
|
||||
@ -160,7 +160,7 @@ index 0e4e2ba..c55505e 100644
|
||||
|
||||
level_count = min(wined3d_texture_get_level_count(src_texture),
|
||||
wined3d_texture_get_level_count(dst_texture));
|
||||
@@ -3527,17 +3493,8 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
@@ -3517,17 +3483,8 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
++src_skip_levels;
|
||||
}
|
||||
|
||||
@ -178,7 +178,7 @@ index 0e4e2ba..c55505e 100644
|
||||
|
||||
/* Update every surface level of the texture. */
|
||||
switch (type)
|
||||
@@ -3552,12 +3509,7 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
@@ -3542,12 +3499,7 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
src_surface = surface_from_resource(wined3d_texture_get_sub_resource(src_texture,
|
||||
i + src_skip_levels));
|
||||
dst_surface = surface_from_resource(wined3d_texture_get_sub_resource(dst_texture, i));
|
||||
@ -192,7 +192,7 @@ index 0e4e2ba..c55505e 100644
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -3577,12 +3529,7 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
@@ -3567,12 +3519,7 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
i * src_levels + j + src_skip_levels));
|
||||
dst_surface = surface_from_resource(wined3d_texture_get_sub_resource(dst_texture,
|
||||
i * dst_levels + j));
|
||||
@ -206,7 +206,7 @@ index 0e4e2ba..c55505e 100644
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -3592,14 +3539,15 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
@@ -3582,14 +3529,15 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
{
|
||||
for (i = 0; i < level_count; ++i)
|
||||
{
|
||||
@ -224,13 +224,13 @@ index 0e4e2ba..c55505e 100644
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -3607,8 +3555,44 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
@@ -3597,9 +3545,50 @@ HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
|
||||
default:
|
||||
FIXME("Unsupported texture type %#x.\n", type);
|
||||
- return WINED3DERR_INVALIDCALL;
|
||||
+ return;
|
||||
}
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device,
|
||||
@ -245,8 +245,8 @@ index 0e4e2ba..c55505e 100644
|
||||
+ {
|
||||
+ WARN("Source and destination textures must be non-NULL, returning WINED3DERR_INVALIDCALL.\n");
|
||||
+ return WINED3DERR_INVALIDCALL;
|
||||
+ }
|
||||
+
|
||||
}
|
||||
|
||||
+ if (src_texture->resource.pool != WINED3D_POOL_SYSTEM_MEM)
|
||||
+ {
|
||||
+ WARN("Source texture not in WINED3D_POOL_SYSTEM_MEM, returning WINED3DERR_INVALIDCALL.\n");
|
||||
@ -257,6 +257,11 @@ index 0e4e2ba..c55505e 100644
|
||||
+ WARN("Destination texture not in WINED3D_POOL_DEFAULT, returning WINED3DERR_INVALIDCALL.\n");
|
||||
+ return WINED3DERR_INVALIDCALL;
|
||||
+ }
|
||||
+ if (dst_texture->resource.format != src_texture->resource.format)
|
||||
+ {
|
||||
+ WARN("Formats do not match, returning WINED3DERR_INVALIDCALL.\n");
|
||||
+ return WINED3DERR_INVALIDCALL;
|
||||
+ }
|
||||
+
|
||||
+ /* Verify that the source and destination textures are the same type. */
|
||||
+ type = src_texture->resource.type;
|
||||
@ -267,14 +272,15 @@ index 0e4e2ba..c55505e 100644
|
||||
+ }
|
||||
+
|
||||
+ wined3d_cs_emit_update_texture(device->cs, src_texture, dst_texture);
|
||||
|
||||
+
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index d141e3e..fa9270a 100644
|
||||
index 3081be5..3297c5e 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2114,6 +2114,8 @@ void device_resource_add(struct wined3d_device *device, struct wined3d_resource
|
||||
@@ -2152,6 +2152,8 @@ void device_resource_add(struct wined3d_device *device, struct wined3d_resource
|
||||
void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN;
|
||||
void device_invalidate_shader_constants(const struct wined3d_device *device, DWORD mask) DECLSPEC_HIDDEN;
|
||||
@ -283,7 +289,7 @@ index d141e3e..fa9270a 100644
|
||||
|
||||
static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
|
||||
{
|
||||
@@ -2703,6 +2705,8 @@ void wined3d_cs_emit_update_surface(struct wined3d_cs *cs, struct wined3d_surfac
|
||||
@@ -2744,6 +2746,8 @@ void wined3d_cs_emit_update_surface(struct wined3d_cs *cs, struct wined3d_surfac
|
||||
const RECT *src_rect, struct wined3d_surface *dst, const POINT *dst_point) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_texture_preload(struct wined3d_cs *cs, struct wined3d_texture *texture) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_surface_preload(struct wined3d_cs *cs, struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
||||
@ -293,5 +299,5 @@ index d141e3e..fa9270a 100644
|
||||
/* 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
|
||||
--
|
||||
2.3.5
|
||||
2.5.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From ef5650c2467c6902fca699bb05d0302a0f42d900 Mon Sep 17 00:00:00 2001
|
||||
From 39991b8b55a61f725745fde7e8a2622ec6a457a0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 29 Aug 2013 22:25:14 +0200
|
||||
Subject: wined3d: Don't lock the src volume in device_update_volume
|
||||
@ -9,14 +9,14 @@ assumption of the work queue.
|
||||
|
||||
FIXME: Maybe merge this with the previous patch or change their order.
|
||||
---
|
||||
dlls/wined3d/device.c | 31 +++++++------------------------
|
||||
1 file changed, 7 insertions(+), 24 deletions(-)
|
||||
dlls/wined3d/device.c | 30 +++++++-----------------------
|
||||
1 file changed, 7 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index c55505e..1db616d 100644
|
||||
index e7c5bcc..e3b4217 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -3430,12 +3430,10 @@ void CDECL wined3d_device_draw_indexed_primitive_instanced(struct wined3d_device
|
||||
@@ -3420,12 +3420,10 @@ void CDECL wined3d_device_draw_indexed_primitive_instanced(struct wined3d_device
|
||||
}
|
||||
|
||||
/* This is a helper function for UpdateTexture, there is no UpdateVolume method in D3D. */
|
||||
@ -31,7 +31,7 @@ index c55505e..1db616d 100644
|
||||
|
||||
TRACE("src_volume %p, dst_volume %p.\n",
|
||||
src_volume, dst_volume);
|
||||
@@ -3443,31 +3441,22 @@ static HRESULT device_update_volume(struct wined3d_context *context,
|
||||
@@ -3433,31 +3431,23 @@ static HRESULT device_update_volume(struct wined3d_context *context,
|
||||
if (src_volume->resource.format != dst_volume->resource.format)
|
||||
{
|
||||
FIXME("Source and destination formats do not match.\n");
|
||||
@ -53,7 +53,7 @@ index c55505e..1db616d 100644
|
||||
/* Only a prepare, since we're uploading the entire volume. */
|
||||
wined3d_texture_prepare_texture(dst_volume->container, context, FALSE);
|
||||
wined3d_texture_bind_and_dirtify(dst_volume->container, context, FALSE);
|
||||
-
|
||||
|
||||
- data.buffer_object = 0;
|
||||
- data.addr = src.data;
|
||||
- wined3d_volume_upload_data(dst_volume, context, &data);
|
||||
@ -67,7 +67,7 @@ index c55505e..1db616d 100644
|
||||
}
|
||||
|
||||
/* Context activation is done by the caller */
|
||||
@@ -3539,16 +3528,10 @@ void device_exec_update_texture(struct wined3d_context *context, struct wined3d_
|
||||
@@ -3529,16 +3519,10 @@ void device_exec_update_texture(struct wined3d_context *context, struct wined3d_
|
||||
{
|
||||
for (i = 0; i < level_count; ++i)
|
||||
{
|
||||
@ -86,5 +86,5 @@ index c55505e..1db616d 100644
|
||||
break;
|
||||
}
|
||||
--
|
||||
2.3.5
|
||||
2.5.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 093a05f4ff44d45e81e9e0f3dada8fb6551cf382 Mon Sep 17 00:00:00 2001
|
||||
From 18f06f3fccac3871c0db9d0229a137f920edfbef Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Fri, 27 Sep 2013 16:55:58 +0200
|
||||
Subject: wined3d: Fence render targets and depth stencils
|
||||
@ -8,10 +8,10 @@ Subject: wined3d: Fence render targets and depth stencils
|
||||
1 file changed, 38 insertions(+)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 0277a1e..a4b996e 100644
|
||||
index cc73bdc..73c3dc6 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -571,6 +571,30 @@ void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *
|
||||
@@ -581,6 +581,30 @@ void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *
|
||||
cs->ops->submit(cs, size);
|
||||
}
|
||||
|
||||
@ -42,11 +42,11 @@ index 0277a1e..a4b996e 100644
|
||||
static UINT wined3d_cs_exec_draw(struct wined3d_cs *cs, const void *data)
|
||||
{
|
||||
const struct wined3d_cs_draw *op = data;
|
||||
@@ -606,6 +630,13 @@ static UINT wined3d_cs_exec_draw(struct wined3d_cs *cs, const void *data)
|
||||
@@ -616,6 +640,13 @@ static UINT wined3d_cs_exec_draw(struct wined3d_cs *cs, const void *data)
|
||||
if (cs->state.textures[i])
|
||||
wined3d_resource_dec_fence(&cs->state.textures[i]->resource);
|
||||
}
|
||||
+ for (i = 0; i < sizeof(cs->state.fb.render_targets) / sizeof(*cs->state.fb.render_targets); i++)
|
||||
+ for (i = 0; i < gl_info->limits.buffers; i++)
|
||||
+ {
|
||||
+ if (cs->state.fb.render_targets[i] && wined3d_cs_colorwrite_enabled(&cs->state, i))
|
||||
+ wined3d_resource_dec_fence(cs->state.fb.render_targets[i]->resource);
|
||||
@ -56,11 +56,11 @@ index 0277a1e..a4b996e 100644
|
||||
|
||||
return sizeof(*op);
|
||||
}
|
||||
@@ -637,6 +668,13 @@ void wined3d_cs_emit_draw(struct wined3d_cs *cs, UINT start_idx, UINT index_coun
|
||||
@@ -647,6 +678,13 @@ void wined3d_cs_emit_draw(struct wined3d_cs *cs, UINT start_idx, UINT index_coun
|
||||
if (state->textures[i])
|
||||
wined3d_resource_inc_fence(&state->textures[i]->resource);
|
||||
}
|
||||
+ for (i = 0; i < sizeof(state->fb.render_targets) / sizeof(*state->fb.render_targets); i++)
|
||||
+ for (i = 0; i < cs->device->adapter->gl_info.limits.buffers; i++)
|
||||
+ {
|
||||
+ if (state->fb.render_targets[i] && wined3d_cs_colorwrite_enabled(state, i))
|
||||
+ wined3d_resource_inc_fence(state->fb.render_targets[i]->resource);
|
||||
@ -71,5 +71,5 @@ index 0277a1e..a4b996e 100644
|
||||
cs->ops->submit(cs, sizeof(*op));
|
||||
}
|
||||
--
|
||||
2.1.3
|
||||
2.5.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From d95011df395938acfe6f6c7a33f7c5c094e7df83 Mon Sep 17 00:00:00 2001
|
||||
From bf044ed200f71fa0d27d5b74254afb4cef8fe7ca Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Fri, 27 Sep 2013 17:04:47 +0200
|
||||
Subject: wined3d: Fence clear calls.
|
||||
@ -8,10 +8,10 @@ Subject: wined3d: Fence clear calls.
|
||||
1 file changed, 25 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index fb92286..bdb9279 100644
|
||||
index 23683d0..78731a0 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -540,7 +540,7 @@ static UINT wined3d_cs_exec_clear(struct wined3d_cs *cs, const void *data)
|
||||
@@ -550,7 +550,7 @@ static UINT wined3d_cs_exec_clear(struct wined3d_cs *cs, const void *data)
|
||||
const struct wined3d_cs_clear *op = data;
|
||||
struct wined3d_device *device;
|
||||
RECT draw_rect;
|
||||
@ -20,13 +20,13 @@ index fb92286..bdb9279 100644
|
||||
|
||||
device = cs->device;
|
||||
wined3d_get_draw_rect(&cs->state, &draw_rect);
|
||||
@@ -548,6 +548,17 @@ static UINT wined3d_cs_exec_clear(struct wined3d_cs *cs, const void *data)
|
||||
@@ -558,6 +558,17 @@ static UINT wined3d_cs_exec_clear(struct wined3d_cs *cs, const void *data)
|
||||
&cs->state.fb, op->rect_count, op->rect_count ? op->rects : NULL, &draw_rect, op->flags,
|
||||
&op->color, op->depth, op->stencil);
|
||||
|
||||
+ if (op->flags & WINED3DCLEAR_TARGET)
|
||||
+ {
|
||||
+ for (i = 0; i < sizeof(cs->state.fb.render_targets) / sizeof(*cs->state.fb.render_targets); i++)
|
||||
+ for (i = 0; i < device->adapter->gl_info.limits.buffers; i++)
|
||||
+ {
|
||||
+ if (cs->state.fb.render_targets[i])
|
||||
+ wined3d_resource_dec_fence(cs->state.fb.render_targets[i]->resource);
|
||||
@ -38,7 +38,7 @@ index fb92286..bdb9279 100644
|
||||
return sizeof(*op) + sizeof(*op->rects) * extra_rects;
|
||||
}
|
||||
|
||||
@@ -555,8 +566,9 @@ void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *
|
||||
@@ -565,8 +576,9 @@ void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *
|
||||
DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil)
|
||||
{
|
||||
struct wined3d_cs_clear *op;
|
||||
@ -49,13 +49,13 @@ index fb92286..bdb9279 100644
|
||||
|
||||
op = cs->ops->require_space(cs, size);
|
||||
op->opcode = WINED3D_CS_OP_CLEAR;
|
||||
@@ -568,6 +580,17 @@ void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *
|
||||
@@ -578,6 +590,17 @@ void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *
|
||||
op->depth = depth;
|
||||
op->stencil = stencil;
|
||||
|
||||
+ if (flags & WINED3DCLEAR_TARGET)
|
||||
+ {
|
||||
+ for (i = 0; i < sizeof(state->fb.render_targets) / sizeof(*state->fb.render_targets); i++)
|
||||
+ for (i = 0; i < cs->device->adapter->gl_info.limits.buffers; i++)
|
||||
+ {
|
||||
+ if (state->fb.render_targets[i])
|
||||
+ wined3d_resource_inc_fence(state->fb.render_targets[i]->resource);
|
||||
@ -68,5 +68,5 @@ index fb92286..bdb9279 100644
|
||||
}
|
||||
|
||||
--
|
||||
2.1.3
|
||||
2.5.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e9a13b9c7f3776005db0f8f32a43241c6c66b5be Mon Sep 17 00:00:00 2001
|
||||
From 08092b494b98ca7ca22998b5afb4adcd6172a0fc Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Fri, 30 Aug 2013 17:00:35 +0200
|
||||
Subject: wined3d: Wrap GL BOs in a structure
|
||||
@ -14,10 +14,10 @@ them for DISCARD maps.
|
||||
5 files changed, 86 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 18b1784..039ca85 100644
|
||||
index eb0c0ba..d0fcba2 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -5052,3 +5052,56 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
@@ -5139,3 +5139,56 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL
|
||||
else
|
||||
return CallWindowProcA(proc, window, message, wparam, lparam);
|
||||
}
|
||||
@ -42,7 +42,7 @@ index 18b1784..039ca85 100644
|
||||
+ gl_info = context->gl_info;
|
||||
+
|
||||
+ GL_EXTCALL(glGenBuffers(1, &ret->name));
|
||||
+ if (type_hint == GL_ELEMENT_ARRAY_BUFFER_ARB)
|
||||
+ if (type_hint == GL_ELEMENT_ARRAY_BUFFER)
|
||||
+ context_invalidate_state(context, STATE_INDEXBUFFER);
|
||||
+ GL_EXTCALL(glBindBuffer(type_hint, ret->name));
|
||||
+ GL_EXTCALL(glBufferData(type_hint, size, NULL, gl_usage));
|
||||
@ -75,10 +75,10 @@ index 18b1784..039ca85 100644
|
||||
+ wined3d_device_destroy_bo(device, context, bo);
|
||||
+}
|
||||
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
|
||||
index 2530ee0..4496c9b 100644
|
||||
index 49ef6b9..37a2644 100644
|
||||
--- a/dlls/wined3d/resource.c
|
||||
+++ b/dlls/wined3d/resource.c
|
||||
@@ -154,12 +154,10 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
|
||||
@@ -226,12 +226,10 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
|
||||
void wined3d_resource_free_bo(struct wined3d_resource *resource)
|
||||
{
|
||||
struct wined3d_context *context = context_acquire(resource->device, NULL);
|
||||
@ -94,7 +94,7 @@ index 2530ee0..4496c9b 100644
|
||||
context_release(context);
|
||||
}
|
||||
|
||||
@@ -175,7 +173,7 @@ void resource_cleanup(struct wined3d_resource *resource)
|
||||
@@ -247,7 +245,7 @@ void resource_cleanup(struct wined3d_resource *resource)
|
||||
adapter_adjust_memory(resource->device->adapter, (INT64)0 - resource->size);
|
||||
}
|
||||
|
||||
@ -103,7 +103,7 @@ index 2530ee0..4496c9b 100644
|
||||
wined3d_resource_free_bo(resource);
|
||||
|
||||
wined3d_resource_free_sysmem(resource);
|
||||
@@ -188,7 +186,7 @@ void resource_unload(struct wined3d_resource *resource)
|
||||
@@ -260,7 +258,7 @@ void resource_unload(struct wined3d_resource *resource)
|
||||
if (resource->map_count)
|
||||
ERR("Resource %p is being unloaded while mapped.\n", resource);
|
||||
|
||||
@ -112,7 +112,7 @@ index 2530ee0..4496c9b 100644
|
||||
wined3d_resource_free_bo(resource);
|
||||
|
||||
context_resource_unloaded(resource->device,
|
||||
@@ -437,7 +435,7 @@ void wined3d_resource_get_memory(const struct wined3d_resource *resource,
|
||||
@@ -511,7 +509,7 @@ void wined3d_resource_get_memory(const struct wined3d_resource *resource,
|
||||
{
|
||||
if (location & WINED3D_LOCATION_BUFFER)
|
||||
{
|
||||
@ -121,7 +121,7 @@ index 2530ee0..4496c9b 100644
|
||||
data->addr = NULL;
|
||||
return;
|
||||
}
|
||||
@@ -546,7 +544,7 @@ BYTE *wined3d_resource_get_map_ptr(const struct wined3d_resource *resource,
|
||||
@@ -620,7 +618,7 @@ BYTE *wined3d_resource_get_map_ptr(const struct wined3d_resource *resource,
|
||||
{
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
gl_info = context->gl_info;
|
||||
@ -130,7 +130,7 @@ index 2530ee0..4496c9b 100644
|
||||
|
||||
if (gl_info->supported[ARB_MAP_BUFFER_RANGE])
|
||||
{
|
||||
@@ -589,7 +587,7 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
|
||||
@@ -663,7 +661,7 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
|
||||
{
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
gl_info = context->gl_info;
|
||||
@ -139,7 +139,7 @@ index 2530ee0..4496c9b 100644
|
||||
GL_EXTCALL(glUnmapBuffer(GL_PIXEL_UNPACK_BUFFER));
|
||||
GL_EXTCALL(glBindBuffer(GL_PIXEL_UNPACK_BUFFER, 0));
|
||||
checkGLcall("Unmap GL buffer");
|
||||
@@ -607,20 +605,14 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
|
||||
@@ -681,20 +679,14 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
|
||||
}
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
@ -166,7 +166,7 @@ index 2530ee0..4496c9b 100644
|
||||
|
||||
BOOL wined3d_resource_prepare_system_memory(struct wined3d_resource *resource)
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index fc719e7..d1020df 100644
|
||||
index 025e85e1..fc1fc45 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -48,7 +48,7 @@ static void surface_cleanup(struct wined3d_surface *surface)
|
||||
@ -178,7 +178,7 @@ index fc719e7..d1020df 100644
|
||||
|| surface->rb_resolved || !list_empty(&surface->renderbuffers))
|
||||
{
|
||||
struct wined3d_renderbuffer_entry *entry, *entry2;
|
||||
@@ -2591,7 +2591,7 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
|
||||
@@ -2586,7 +2586,7 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
|
||||
}
|
||||
if (!(surface->resource.map_binding == WINED3D_LOCATION_USER_MEMORY
|
||||
|| surface->container->flags & WINED3D_TEXTURE_PIN_SYSMEM
|
||||
@ -187,7 +187,7 @@ index fc719e7..d1020df 100644
|
||||
surface->resource.map_binding = WINED3D_LOCATION_DIB;
|
||||
}
|
||||
|
||||
@@ -3897,7 +3897,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -3905,7 +3905,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
/* 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. */
|
||||
@ -197,7 +197,7 @@ index fc719e7..d1020df 100644
|
||||
TRACE("Removing the pbo attached to surface %p.\n", surface);
|
||||
|
||||
diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
|
||||
index 6fc23f3..f6d2e8f 100644
|
||||
index b79f44e..ea9a047 100644
|
||||
--- a/dlls/wined3d/volume.c
|
||||
+++ b/dlls/wined3d/volume.c
|
||||
@@ -218,7 +218,7 @@ static void wined3d_volume_load_location(struct wined3d_resource *resource,
|
||||
@ -225,10 +225,10 @@ index 6fc23f3..f6d2e8f 100644
|
||||
if (volume->resource.locations & WINED3D_LOCATION_TEXTURE_RGB)
|
||||
wined3d_texture_bind_and_dirtify(volume->container, context, FALSE);
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index b23757b..2f85556 100644
|
||||
index 8a25420..9eb038e 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2007,6 +2007,14 @@ struct wined3d_state
|
||||
@@ -2048,6 +2048,14 @@ struct wined3d_state
|
||||
DWORD render_states[WINEHIGHEST_RENDER_STATE + 1];
|
||||
};
|
||||
|
||||
@ -243,7 +243,7 @@ index b23757b..2f85556 100644
|
||||
#define WINED3D_UNMAPPED_STAGE ~0U
|
||||
|
||||
/* Multithreaded flag. Removed from the public header to signal that
|
||||
@@ -2113,6 +2121,11 @@ void device_invalidate_state(const struct wined3d_device *device, DWORD state) D
|
||||
@@ -2154,6 +2162,11 @@ void device_invalidate_state(const struct wined3d_device *device, DWORD state) D
|
||||
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,
|
||||
struct wined3d_texture *dst_texture) DECLSPEC_HIDDEN;
|
||||
@ -255,7 +255,7 @@ index b23757b..2f85556 100644
|
||||
|
||||
static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
|
||||
{
|
||||
@@ -2156,7 +2169,7 @@ struct wined3d_resource
|
||||
@@ -2199,7 +2212,7 @@ struct wined3d_resource
|
||||
DWORD priority;
|
||||
void *heap_memory, *user_memory, *bitmap_data;
|
||||
UINT custom_row_pitch, custom_slice_pitch;
|
||||
@ -265,5 +265,5 @@ index b23757b..2f85556 100644
|
||||
DWORD locations;
|
||||
LONG access_fence;
|
||||
--
|
||||
2.3.5
|
||||
2.5.1
|
||||
|
@ -1,14 +1,14 @@
|
||||
From 4dd8d4df940d07ac83180fd8efa576d5f9cbfdae Mon Sep 17 00:00:00 2001
|
||||
From b596845e64e0d1f5d0674508066409f8eb88bed1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Fri, 11 Oct 2013 10:17:42 +0200
|
||||
Subject: wined3d: Delete GL contexts through the CS in uninit_3d.
|
||||
|
||||
---
|
||||
dlls/wined3d/device.c | 35 ++++-------------------------------
|
||||
1 file changed, 4 insertions(+), 31 deletions(-)
|
||||
dlls/wined3d/device.c | 32 +++-----------------------------
|
||||
1 file changed, 3 insertions(+), 29 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index ee5139b..72e472e 100644
|
||||
index 15868f2..d20d3b1 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -1013,8 +1013,6 @@ static void device_free_sampler(struct wine_rb_entry *entry, void *context)
|
||||
@ -33,15 +33,15 @@ index ee5139b..72e472e 100644
|
||||
if (device->logo_texture)
|
||||
wined3d_texture_decref(device->logo_texture);
|
||||
|
||||
@@ -1061,30 +1053,8 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
|
||||
@@ -1061,30 +1053,11 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device)
|
||||
TRACE("Unloading resource %p.\n", resource);
|
||||
wined3d_cs_emit_evict_resource(device->cs, resource);
|
||||
}
|
||||
- if (wined3d_settings.cs_multithreaded)
|
||||
- device->cs->ops->finish(device->cs);
|
||||
-
|
||||
- wine_rb_clear(&device->samplers, device_free_sampler, NULL);
|
||||
-
|
||||
|
||||
wine_rb_clear(&device->samplers, device_free_sampler, NULL);
|
||||
|
||||
- /* Destroy the depth blt resources, they will be invalid after the reset. Also free shader
|
||||
- * private data, it might contain opengl pointers
|
||||
- */
|
||||
@ -55,26 +55,18 @@ index ee5139b..72e472e 100644
|
||||
- device->blitter->free_private(device);
|
||||
- device->shader_backend->shader_free_private(device);
|
||||
- destroy_dummy_textures(device, gl_info);
|
||||
|
||||
-
|
||||
- /* Release the context again as soon as possible. In particular,
|
||||
- * releasing the render target views below may release the last reference
|
||||
- * to the swapchain associated with this context, which in turn will
|
||||
- * destroy the context. */
|
||||
- context_release(context);
|
||||
+ /* FIXME: Is this in the right place??? */
|
||||
+ wined3d_cs_emit_delete_opengl_contexts(device->cs, device->swapchains[0]);
|
||||
|
||||
if (device->back_buffer_view)
|
||||
{
|
||||
@@ -4180,6 +4150,8 @@ void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wine
|
||||
context = context_acquire(device, NULL);
|
||||
gl_info = context->gl_info;
|
||||
|
||||
+ wine_rb_clear(&device->samplers, device_free_sampler, NULL);
|
||||
+
|
||||
if (device->depth_blt_texture)
|
||||
{
|
||||
gl_info->gl_ops.gl.p_glDeleteTextures(1, &device->depth_blt_texture);
|
||||
@@ -4199,6 +4171,7 @@ void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wine
|
||||
@@ -4366,6 +4339,7 @@ void device_delete_opengl_contexts_cs(struct wined3d_device *device, struct wine
|
||||
|
||||
HeapFree(GetProcessHeap(), 0, swapchain->context);
|
||||
swapchain->context = NULL;
|
||||
@ -83,5 +75,5 @@ index ee5139b..72e472e 100644
|
||||
|
||||
static void delete_opengl_contexts(struct wined3d_device *device, struct wined3d_swapchain *swapchain)
|
||||
--
|
||||
2.3.5
|
||||
2.5.1
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user