Sam Lantinga
5fa87e29e7
Removed SDL_RENDERER_ACCELERATED and SDL_RENDERER_SOFTWARE
...
These flags are unnecessary and have always been a source of confusion.
2024-04-04 13:30:49 -07:00
Sam Lantinga
a82ed82bc7
SDL_QueryTexture() fills in a pointer to SDL_PixelFormatEnum
2024-04-01 15:45:22 -07:00
danginsburg
650ba8f3ec
Vulkan Renderer - closes #9385 . When the vertex buffer size is exceeded, make sure to wait for outstanding work before resizing it. This fixes validation errors/crash found with using Imgui SDL3 renderer on Vulkan.
2024-04-01 07:38:31 -07:00
danginsburg
fb5307c1b3
Vulkan Renderer - fix synchronization validation issues with testrendertarget and testcopyex. When a texture is destroyed, VULKAN_IssueBatch is called to make sure the texture isn't referenced in any outstanding command work. This path did not wait on the semaphore from vkAcquireNextImageKHR, which would create a hazard.
2024-03-28 07:37:49 -07:00
Sam Lantinga
823ab13b9c
SDL_CreateTexture() takes a SDL_PixelFormatEnum format parameter
2024-03-26 10:40:40 -07:00
Sam Lantinga
da027ec3ee
Fixed signed/unsigned comparison warning
2024-03-19 17:00:46 -07:00
Mathieu Eyraud
6af979975f
Add missing break
2024-03-18 15:55:14 +03:00
Anthony
0a86f8eb6e
Move some code blocks inside SDL_VIDEO_RENDER_SW, where it belongs ( #9259 )
...
There was some software renderer specific code that can be excluded with SDL_LEAN_AND_MEAN. This contributes towards #9206
2024-03-12 21:15:46 -07:00
Anonymous Maarten
bee8a95571
Fix SDL_LEAN_AND_MEAN build
2024-03-11 13:46:16 -07:00
r4nx
feadbffb67
Destroy properties after applying them to avoid memory leakage
2024-03-10 18:16:40 -07:00
Sam Lantinga
ed463b41e1
Unified the software renderer creation path
...
Previously there were two different paths for renderer creation, and the HDR metadata initialization was missing when creating a software renderer for a surface. Now all the cases are handled in a single path, so regardless of whether you create a software renderer by name, a software renderer for a surface, or fall back to a software renderer, you'll get the correct initialization in all cases.
Fixes https://github.com/libsdl-org/SDL/issues/9221
2024-03-10 11:05:26 -07:00
Sam Lantinga
33eaddc565
Cleaned up various type conversion issues
...
This makes sure SDL_PixelFormatEnum flows through the internal code correctly, as well as fixing a number of other minor issues.
2024-03-07 06:58:43 -08:00
Sam Lantinga
c70710cde8
SDL_GetPixelFormatEnumForMasks() returns SDL_PixelFormatEnum
2024-03-06 16:19:08 -08:00
Susko3
641b911d38
Update some internal files to use SDL_WindowFlags
2024-03-06 15:08:12 -08:00
Sam Lantinga
26b9178e5c
Fixed whitespace
2024-03-06 09:57:39 -08:00
Sam Lantinga
4545c77c9e
Updated Vita renderer with colorspace clarification
2024-03-05 16:56:58 -08:00
Sam Lantinga
db24560387
Additional colorspace clarification
...
Note that SDL_MATRIX_COEFFICIENTS_BT470BG is functionally equivalent to SDL_MATRIX_COEFFICIENTS_BT601
2024-03-05 16:47:36 -08:00
Sam Lantinga
b3858ec5f7
BT2020_CL is very different from BT2020_NCL, and not currently supported
2024-03-05 15:49:17 -08:00
Sam Lantinga
9db68f97f9
Reverted SDL_Vulkan_GetInstanceExtensions() API change
...
This function is commonly used with Vulkan structures that use uint32_t, so we should keep the Uint32 signature.
2024-03-05 13:39:42 -08:00
Sylvain
cea717e5d3
Removed some uneeded 'unsigned': renderer.num_texture_format and SDL_Vulkan_GetInstanceExtensions() prototype
2024-03-05 13:31:28 -08:00
Sam Lantinga
1e0bac288b
Use the hlsli extension for shader includes
2024-03-05 12:46:44 -08:00
Sam Lantinga
759ade8c90
vulkan: enable samplerYcbcrConversion when creating the device
2024-03-04 11:17:42 -08:00
Sam Lantinga
48471f7dbd
Added SDL_AddVulkanRenderSemaphores() for external synchronization with SDL rendering
2024-03-04 09:29:36 -08:00
Sam Lantinga
504d8c2fc0
Fixed potential memory leak if vkCreateInstance() fails
2024-03-04 09:29:36 -08:00
Sam Lantinga
74f4614289
Save the native texture parent and return that in SDL_GetRenderTarget()
...
Fixes https://github.com/libsdl-org/SDL/issues/9176
2024-03-03 09:47:40 -08:00
Sam Lantinga
eb5a2e7e7f
Fixed building with SDL_LEAN_AND_MEAN
...
Fixes https://github.com/libsdl-org/SDL/issues/9173
2024-03-03 09:25:02 -08:00
Jade Macho
c74f273848
d3d12: Move root sigs to D3D12_Shader_Common.hlsli, fix mismatch
2024-03-02 10:30:29 -08:00
Jade Macho
794f0f1b42
GDK: Fix SDL_pixels.c/_c.h linking error caused by C / C++ mismatch
2024-03-02 10:30:29 -08:00
Jade Macho
23ace600fc
GDK: Remove old shader sources, unify shader compilation .bats
2024-03-02 10:30:29 -08:00
Sam Lantinga
2bc2840de5
vulkan: VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 is a 2-plane format
2024-03-01 20:26:52 -08:00
Sam Lantinga
2bedd7f02e
Fixed pitch alignment when updating SDL_PIXELFORMAT_P010 textures
2024-03-01 20:26:52 -08:00
danginsburg
812e04fb11
Vulkan Renderer - fix validation error with VkSemaphore reused before signaling. Have one semaphore per-submit rather than using the same one.
2024-03-01 06:09:22 -08:00
Sam Lantinga
0454e1fdb4
Vulkan: added support for wrapping existing textures
2024-02-29 17:38:10 -08:00
Sam Lantinga
2adbcce864
Vulkan: wait for all queues to be idle before destroying the device
2024-02-29 14:12:09 -08:00
danginsburg
0115027116
Vulkan Renderer - fix validation errors:
...
* Make sure to always write pointSize in VS (fixes validation error in testsprite)
* Fix validation error from acquiring swapchain semaphore more than once
* Fix validation error from using incorrect framebuffer size in testautomation
Now passes testautomation with validation.
2024-02-29 10:59:47 -08:00
Sam Lantinga
0c6a1b636e
Vulkan: added handling for SDL_MATRIX_COEFFICIENTS_UNSPECIFIED
2024-02-28 19:18:37 -08:00
Sam Lantinga
4017e1370d
Vulkan: cleaned up error handling
2024-02-28 19:11:33 -08:00
Sam Lantinga
59bbfc1fdd
Vulkan: only advertise YUV formats if the VK_KHR_sampler_ycbcr_conversion extension is available
...
Also check to see if it's available when given an external Vulkan device
2024-02-28 19:04:00 -08:00
Sam Lantinga
bf853823a2
Removed unused YCbCr_matrix from Vulkan shaders
2024-02-28 18:38:06 -08:00
Sam Lantinga
4513c32bb3
The ycbcrModel should be based on the transfer matrix, not the color primaries
2024-02-28 16:58:39 -08:00
Sam Lantinga
a241cca9e6
Fixed warning C4090: 'function': different 'const' qualifiers
2024-02-28 11:45:24 -08:00
Sam Lantinga
fc94c3634e
Fixed signed/unsigned comparison warning
2024-02-28 09:06:21 -08:00
Sam Lantinga
ba34025423
Use direct3d11 as the default renderer on Windows
...
The D3D12 renderer initializes but has poor performance or graphical issues on older Intel hardware.
Fixes https://github.com/libsdl-org/SDL/issues/7634
Fixes https://github.com/libsdl-org/SDL/issues/9093
2024-02-28 09:00:36 -08:00
Dan Ginsburg
ad036d43e9
Vulkan Renderer - implement YcBcCr using VK_KHR_sampler_ycbcr_conversion. ( #9169 )
...
* Vulkan Renderer - implement YcBcCr using VK_KHR_sampler_ycbcr_conversion. This simplifies the shader code and will also allow support for additional formats that we don't yet support (such as SDL_PIXELFORMAT_P010 for ffmpeg). The renderer now queries for VK_KHR_sampler_ycbcr_conversion and dependent extensions and will enable it if it's present. It reimplements YUV/NV12 texture support using this extension (these formats are no longer supported if the extension is not present). For each YUV/NV12 texture, a VkSamplerYcbcrConversion object is created from SDL_Colorspace parameters. This is passed to the VkImageView and also an additional sampler is created for Ycbcr. Instead of using 1-3 textures, the shaders now all use 1 texture with a combined image sampler (required by the extension). Further, when using Ycbcr, a separate descriptor set layout is baked with the Ycbcr sampler as an immutable sampler. The code to copy the images now copies to the individual image planes. The swizzling between formats is handled in the VkSamplerYcbcrConversion object.
2024-02-28 08:57:09 -08:00
Sam Lantinga
e142bb1b0c
The extension strings are const and don't need to be duplicated
2024-02-28 07:12:15 -08:00
Sam Lantinga
0997bdd292
Fixed SDL_calloc() calls (should be count, size)
2024-02-28 07:12:15 -08:00
Sam Lantinga
614630df69
Allow using an external Vulkan device with the vulkan renderer
2024-02-28 07:12:15 -08:00
Sam Lantinga
81608ad077
Vulkan: fixed creating SDL_PIXELFORMAT_P010 textures
2024-02-26 15:51:13 -08:00
Sam Lantinga
80d2ef7384
Fixed uploading Vulkan texture with w*bpp != pitch
2024-02-26 15:18:23 -08:00
danginsburg
935c197059
Fix testautomation failures (including clip rect) - closes #9145 . During merging for prep'ing the final PR for the Vulkan Renderer, I misordered a memcpy that regressed several of the testautomation test. From now on, I will make sure to run testautomation on any future PRs before submitting.
2024-02-26 10:04:10 -08:00