Skip to content

Conversation

flibitijibibo
Copy link
Collaborator

Easy feature, but needs a style check.

@slouken
Copy link
Collaborator

slouken commented Aug 25, 2025

What's the use case for this? I'm inclined not to add it unless it's actually necessary.

If it's for potentially removing the direct3d12 renderer, then it's fine that the GPU renderer fails and we fall back to direct3d11 on hardware that has 11_0 features and no tier 2 resource bindings.

@flibitijibibo
Copy link
Collaborator Author

It adds support for a large subset of hardware that runs fine as long as the number of UAVs is limited (Maxwell Gen 1 and older, for example). Applications that don't use UAVs at all benefit the most from this; this includes SDL_Render, FNA, and an unannounced title with a custom engine and renderer using SDL3.

@thatcosmonaut
Copy link
Collaborator

I'm curious if we can find out which specific devices don't have Tier 2 support. If those devices exist, then this provides a way to enable SDL GPU. There's definitely a subset of hardware from the early D3D12 era that has a Windows D3D12 driver but no Windows Vulkan driver, but I'm not sure if those devices are also Tier 1 specifically.

@slouken
Copy link
Collaborator

slouken commented Aug 25, 2025

If this is useful, then I would move it after SDL_PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING and rename it something that is more expressive than technical, e.g. SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN along with a better description of what hardware that would enable.

@flibitijibibo
Copy link
Collaborator Author

flibitijibibo commented Aug 29, 2025

Got a clearer picture of where the hardware is:

  • For AMD, all GCN cards (or newer) support Tier 3 and Vulkan 1.0, anything older has no support at all.
  • For NVidia, Maxwell and newer are Tier 2 with Vulkan 1.2 support, anything older has no support at all. Maxwell 1 and 2 were upgraded to Tier 3 via driver updates, and Kepler support was added in the same update, however the Kepler performance seems to be really bad due to emulation overhead, so even if it's Tier 2 we probably want to avoid that gen.
  • For Intel, Haswell and Broadwell are Tier 1, Skylake and newer are Tier 3 with Vulkan support.

Ultimately this would be for Intel Haswell and Broadwell, which do not have Vulkan drivers at all. This may apply to ARM devices as well, but there's even less info about that hardware than traditional x86 hardware, so I'm just assuming the worst there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants