Commit graph

701 commits

Author SHA1 Message Date
Zebediah Figura 5323042f7a wined3d: Add helpers to retrieve shader constants from a wined3d_stateblock. 2023-07-27 11:54:21 +09:00
Zebediah Figura 221f110bbd wined3d: Remove no longer used arguments from wined3d_texture_update_desc().
Limit it to updating user memory and pitch.
2023-06-29 12:04:37 +02:00
Zebediah Figura ebaa0a9426 wined3d: Recreate swapchain textures in wined3d_swapchain_resize_buffers().
Instead of using wined3d_texture_update_desc(). This is safe, because:

* ddraw never exposes wined3d textures directly, and always retrieves them
  directly from wined3d when rendering.

* d3d8 and d3d9 (non-extended) will only resize buffers during a reset, and
  resetting is forbidden if the application holds any references to the
  backbuffers. RTVs are also replaced during a reset, so there is no concern
  about retrieving the old RTVs from the device state.

* d3d9ex allows resetting while holding references to the backbuffers, but tests
  (fixed by this patch) show that the backbuffers should in fact be recreated.

* dxgi forbids holding references to back buffers during ResizeBuffers(),
  including indirect references via command lists or device contexts.
2023-06-29 12:04:35 +02:00
Zebediah Figura c7d8a1b47a wined3d: Directly call wined3d_texture_create() to create swapchain textures.
Get rid of the create_swapchain_texture callback.
2023-05-04 18:44:48 +02:00
Zebediah Figura ba99b0d77b d3d9: Pass the container to d3d9_surface_create(). 2023-04-26 22:49:17 +02:00
Zebediah Figura 7b7195330d d3d9: Create sub-resource surfaces manually.
Move away from using the sub_resource_created callback to do this.

This is also a step away from using the create_swapchain_texture callback.
2023-04-26 22:49:17 +02:00
Zebediah Figura 8a5b4252c8 d3d9: Move surface allocation to d3d9_surface_create().
Renamed from d3d9_surface_init() accordingly.
2023-04-26 22:49:17 +02:00
Stefan Dösinger 723cd0a4ae wined3d: Make video memory accounting a per-resource flag.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54701
2023-03-28 11:43:38 +02:00
Illia Polishchuk af65f0c9a0 d3d9: Always draw only a single instance for non-indexed draws.
Windows d3d9 always draws only a single instance for non-indexed draws.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54570
2023-03-02 18:08:51 +01:00
Zebediah Figura f3e381d1c9 d3d9: Upload the relevant texture in d3d9_texture_gen_auto_mipmap().
Instead of uploading all currently bound textures. Besides being redundant, this
would generate mipmaps for an uninitialized texture, and subsequently trying to
render from nonzero mipmap levels would yield uninitialized data.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54170
2022-12-21 18:24:39 +01:00
Zebediah Figura 9b3742bebb d3d9: Build without -DWINE_NO_LONG_TYPES. 2022-11-09 21:23:48 +01:00
Zebediah Figura 5f1cbb1b85 d3d9: Use a separate draw texture for managed resources.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52954
2022-09-27 18:14:34 +02:00
Zebediah Figura 46c9897bdf d3d9: Factor out d3d9_texture_init(). 2022-09-27 18:14:33 +02:00
Zebediah Figura a3c4410fea d3d9: Introduce a wined3d_usage_from_d3d() helper. 2022-08-16 22:27:53 +02:00
Zebediah Figura dd5c511c9f d3d9: Do not release the wined3d mutex in d3d9_device_upload_sysmem_index_buffer().
Spotted by Henri Verbeet.

This fixes a regression introduced by 66f37aae7e.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53372
2022-07-27 23:07:06 +02:00
Zebediah Figura 66f37aae7e d3d9: Upload sysmem vertex buffers into the streaming buffer in d3d9_device_DrawPrimitive().
As for d3d8.
2022-07-13 15:03:48 +02:00
Zebediah Figura 24c900b91f d3d9: Use the wined3d_streaming_buffer helpers to manage the streaming index buffer. 2022-07-12 22:51:30 +02:00
Zebediah Figura 2e94258ca2 d3d9: Use the wined3d_streaming_buffer helpers to manage the streaming vertex buffer. 2022-07-12 22:51:30 +02:00
Jan Sikorski 08c9b7c9ce d3d9: Don't grab wined3d lock for wined3d incref/decref functions.
Signed-off-by: Jan Sikorski <jsikorski@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-01 20:46:21 +01:00
Zebediah Figura 1124edd281 d3d11: Fail OMSetRenderTargets() if any of the views have the wrong binding flags.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-19 12:21:44 +02:00
Zebediah Figura 9fdc3fd8bb wined3d: Introduce a wined3d_bound_range() helper.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-07 18:14:35 +02:00
Zebediah Figura ea5041c68a wined3d: Pass a wined3d_device_context to wined3d_device_set_primitive_type().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-21 21:20:55 +02:00
Zebediah Figura a313daea70 wined3d: Pass a wined3d_device_context to wined3d_device_get_depth_stencil_view().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-20 22:57:10 +02:00
Zebediah Figura 40e1072117 wined3d: Pass a wined3d_device_context to wined3d_device_get_rendertarget_view().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-20 22:57:10 +02:00
Zebediah Figura 9a8c5259bb wined3d: Pass a wined3d_device_context to wined3d_device_get_scissor_rects().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-16 22:39:46 +02:00
Zebediah Figura cdcc2ade6e wined3d: Pass a wined3d_device_context to wined3d_device_get_viewports().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-16 22:39:46 +02:00
Zebediah Figura fbd1e2eb6b wined3d: Pass a wined3d_device_context to wined3d_device_clear_rendertarget_view().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-08 18:51:29 +02:00
Zebediah Figura 5c7057d229 wined3d: Pass a wined3d_device_context to wined3d_device_resolve_sub_resource().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-07 15:48:43 +02:00
Zebediah Figura 86dcbadffb wined3d: Pass a wined3d_device_context to wined3d_texture_blt().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-07 15:48:35 +02:00
Zebediah Figura 8c4061a778 wined3d: Pass a wined3d_device_context to wined3d_device_copy_sub_resource_region().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-07 15:48:31 +02:00
Zebediah Figura a1ae5f1eca d3d9: Use wined3d_device_context methods.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-06 22:46:12 +02:00
Zebediah Figura 1c810a64b7 wined3d: Check for a valid index buffer in d3d[89]_device_DrawIndexedPrimitive().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-01 18:18:31 +02:00
Zebediah Figura 7c62e6b169 d3d9: Use device->stateblock_state to check for a valid vertex declaration.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-30 21:23:41 +02:00
Piotr Caban ff1a4e0624 d3d9: Lock wined3d mutex in d3d9_device_CreateTexture().
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-15 21:43:45 +02:00
Rémi Bernon b2fed1c70b d3d9: Use WINED3D_SWAPCHAIN_RESTORE_WINDOW_STATE if extended.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-07 21:18:17 +02:00
Gabriel Ivăncescu 7c0e2a0ca6 wined3d: Don't change the swapchain window z-order if no window changes were requested.
Based on a patch by Rémi Bernon.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-07-07 21:18:05 +02:00
Paul Gofman cfeefc6b94 wined3d: Set user memory separately for texture sub resources.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=43232
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-06-17 18:35:07 +02:00
Zhiyi Zhang d3e088cc00 wined3d: Specify a wined3d output for swapchain creation.
As tests showed, DirectDraw, Direct3D 8 and 9 always use the adapter
specified in the device creation parameters regardless of the device
window position when creating a swapchain. Whereas DXGI uses the device
window position to determine which DXGI output to use.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-13 22:07:32 +02:00
Chip Davis ee6b083173 d3d9: Remove an unneeded conversion.
That parameter is already the correct type.

Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-08 21:01:18 +02:00
Chip Davis 31d9d0f7f3 d3d9: Explicitly cast FourCC formats in d3dformat_from_wined3dformat() and wined3dformat_from_d3dformat().
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Henri Verbeet 4984221976 d3d9: Introduce a helper to convert d3d9 primitive types to wined3d types.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 12:57:41 +02:00
Henri Verbeet 91a8266987 d3d9: Introduce a helper to convert d3d9 sampler states to wined3d states.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 12:57:39 +02:00
Henri Verbeet 705de1ea00 d3d9: Introduce a helper to convert d3d9 render states to wined3d states.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 12:57:35 +02:00
Henri Verbeet 4393d284fd d3d9: Introduce a helper to convert d3d9 transform states to wined3d states.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 12:57:32 +02:00
Henri Verbeet 1690009673 d3d9: Introduce a helper to convert d3d9 texture filter types to wined3d types.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 12:57:29 +02:00
Henri Verbeet fb408f1662 d3d9: Introduce a helper to convert d3d9 device types to wined3d types.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 12:57:25 +02:00
Henri Verbeet 4997657116 d3d9: Introduce helpers to convert between d3d9 and wined3d scanline ordering types.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 12:57:19 +02:00
Chip Davis 5b70e3321a d3d9: Introduce helpers to convert between d3d9 and wined3d multisample types.
Signed-off-by: Chip Davis <cdavis@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-02 12:57:17 +02:00
Zhiyi Zhang 49bf4a8707 wined3d: Move cursor size check against display mode out of wined3d_device_set_cursor_properties().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-31 17:24:16 +02:00
Zhiyi Zhang 669cac9852 d3d9: Report d3d9 adapter ordinal in d3d9_device_GetCreationParameters().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-23 21:30:29 +01:00