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.
This swapchain is never actually exposed, and effectively only exists due to
implementation constraints. When it was introduced, it was necessary or simplest
to create a dxgi swapchain object, but currently that's no longer necessary, and
avoiding that allows some code to be simplified.
When any of these flags:
- PFD_DRAW_TO_WINDOW
- PFD_DRAW_TO_BITMAP
- PFD_SUPPORT_GDI
- PFD_SUPPORT_OPENGL
are set on the PIXELFORMATDESCRIPTOR parameter to ChoosePixelFormat(),
the returned pixel format must also have them set, but when they are
unset, the returned pixel format may or may not have them set.
Also add support for filtering on all these flags. In particular, the
lack of filtering on PFD_SUPPORT_GDI, was causing (at least) Java 1.3
to fail to initialize graphics, because we were returning a pixel
format without the PFD_SUPPORT_GDI flag it asked for.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=7767
Mingw targets export all symbols by default if there is no explicit
export. We generate export table in winebuild and don't use explicit
exports. This may make linker generate an unused export-all table.
Spotted by Gabriel Ivăncescu.
Creating a view with an unaligned offset is legal in d3d and
apparently works, both on Windows and Linux, but may violate the
Vulkan specification:
VUID-VkBufferViewCreateInfo-offset-00926(ERROR / SPEC): msgNum: -833749292 - Validation Error: [ VUID-VkBufferViewCreateInfo-offset-00926 ] Object 0: handle = 0x3c000000003c, type = VK_OBJECT_TYPE_BUFFER; | MessageID = 0xce4dfed4 | vkCreateBufferView(): VkBufferViewCreateInfo offset (36) must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment (16). The Vulkan spec states: offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment (https://www.khronos.org/registry/vulkan/specs/1.2-khr-extensions/html/vkspec.html#VUID-VkBufferViewCreateInfo-offset-00926)
Without any reason to test unaligned buffer views here, just resolve this by changing the test.