Commit Graph

139 Commits (ea8d7b015cb4efd053111dbd0f04a9c194a63faa)

Author SHA1 Message Date
Stenzek ea8d7b015c
VulkanDevice: Only enable KHR_maintenance5 with dynamic rendering
Required by spec. Only really gets hit by the
disable-on-broken-mobile-driver path.
9 months ago
Stenzek fe8d2e0329
VulkanDevice: Set rasterization order attachment access bit on blend state 9 months ago
Stenzek 7a539ba693
GPUDevice: Reduce GraphicsConfig struct size 9 months ago
Stenzek b10eba419a
VulkanDevice: Disable fbfetch on LLVMpipe
Rendering behaviour with llvmpipe + fbfetch is very strange, it fails
to read push constants sometimes??

Driver bug?
9 months ago
Stenzek e3a044a8a4
Log: Move FastWrite() into macro
That way the format args can be packed inside the conditional,
potentially outside of the hot path.
10 months ago
Stenzek 8dc0b99ee2
VulkanDevice: Fix off-by-one in assertion 11 months ago
Stenzek 9a5e0c9028
ShaderGen: Fix ImGui rendering with Vulkan 11 months ago
Stenzek 9a5eadd86a
GPUDevice: Add SRGBA8 texture format 11 months ago
Stenzek 47c820455d
GPUDevice: Add MultiTextureAndUBOAndPushConstants pipeline layout 11 months ago
Stenzek 6848f07c57
GPUDevice: Combine draw and push constant functions
Prevents us from being in a situation where the push constants haven't
been uploaded because we couldn't allocate a descriptor or something
else which forced a flush.
11 months ago
Stenzek cff3ece1a7
VulkanDevice: Fix incorrect struct type 11 months ago
Stenzek 4f0d35c2ef
VulkanDevice: Make current command buffer lookup consistent 12 months ago
Stenzek de39ff5e9b
GPUDevice: Fix ROV support being disabled
Regression from 6e926041e5
1 year ago
Stenzek 6e926041e5
GPUDevice: Move options to create flags
And add prefer-GLES-context as a config setting, instead of
environment variable.
1 year ago
Stenzek 5e2e39f642
VulkanDevice: Use driver type enum for auto selection 1 year ago
Stenzek e4e57c674d
GPUDevice: Use driver type fields 1 year ago
Stenzek ef26d5cb74
GPUDevice: Backport driver type detection 1 year ago
Stenzek 63adf475d4
VulkanDevice: Avoid defaulting to Vulkan for V3D driver
Image copies are broken.

https://discord.com/channels/695640472202379425/695823554712698962/1392128815689629707
1 year ago
Stenzek 889df1d8be
VulkanDevice: Only reset descriptor pool if used
Save a tiny fraction of overhead.
1 year ago
Stenzek d885446672
VulkanDevice: Fix manual device selection 1 year ago
Stenzek 4d5ba3b4e6
VulkanDevice: Tidy up device/extension initialization
Single pass, avoids enabling extensions that will not be used.
1 year ago
Stenzek 32b3ade56c
VulkanDevice: Allocate N semaphores for N swap chains 1 year ago
Stenzek 611bb8fb4f
VulkanDevice: Remove hardcoded 1.0 API version
Been like this for a couple of months, evidently forgot to remove it
when testing...
1 year ago
Stenzek eca113cd76
GPUDevice: Fix/improve compute shader support
Add multiple texture layout with/without UBO.
1 year ago
Stenzek bbdc6ab4e0
Misc: Fix a bunch of code analysis warnings
Quite a few of these were legitimate.
1 year ago
Stenzek ee1a3b904e
VulkanDevice: Support SDL window type 2 years ago
Stenzek 5913de947f
VulkanDevice: Fix incorrect texture format for A1BGR5 2 years ago
Stenzek c6563a4656
VulkanDevice: Require Vulkan 1.1 for most extension probing
Too much of a headache to deal with these ancient Mali drivers that
support some extensions but not full Vulkan 1.1, and VMA does not
support this scenario.
2 years ago
Stenzek be75a97efe
GPUDevice: Fix swap chain clear colour normalization 2 years ago
Stenzek fb3e290133
GPUDevice: Move exclusive fullscreen to features
Also fixes it not enabling in D3D12 renderer.
2 years ago
Stenzek 389276bb03
GPUDevice: Normalize supports_texture_buffers => texture_buffers 2 years ago
Stenzek 338d29d271
GPUDevice: Move empty/null texture to base class 2 years ago
Stenzek 609fa5c7d7
GPUDevice: Add sampler cache to base class
Removes per-backend bookkeeping in D3D12 and Vulkan.
2 years ago
Stenzek 0030bc2699
GPUDevice: Ensure 16 byte minimum UBO alignment 2 years ago
Stenzek 1bf076c74f
VulkanDevice: Fix crash on shutdown if swapchain creation fails 2 years ago
Stenzek 5eac1e4800
VulkanDevice: Blacklist FSI on AMD Windows
Yay for random GPU resets, it's fine on NVIDIA.
2 years ago
Stenzek 8c5fadafba
GPUTexture: Add A1BGR5 format
Needed for GLES, since RGB5A1 + BGRA + REV isn't listed as
a valid format.
2 years ago
Stenzek f0c456893c
GPUDevice: Support pre-rotating swap chains 2 years ago
Stenzek 9df59713da
GPUDevice: Put debug messages/scopes behind conditions
And completely compile them out in Release builds.

Gets Devel close to Release in terms of performance.
2 years ago
Stenzek 0faa9cf650
Build: Add Devel configuration
Gets you debug assertions and logging, while still producing an
optimized executable.
2 years ago
Stenzek fa4dc381ed
GPUDevice: Rename RGBA5551 to RGB5A1
And fix the incorrect format for Vulkan.
2 years ago
Stenzek 7eb1d4e092
GPUDevice: Support compressed textures 2 years ago
Stenzek 3ff1b04576
GPUDevice: Support generating mipmaps 2 years ago
Stenzek e647192437
GPUDevice: Add compute shader support 2 years ago
Stenzek e69f0d3cce
OpenGLDevice: Support both XCB and Xlib
Required for NVIDIA+XWayland.
2 years ago
Stenzek 92bcf64fe8
VulkanDevice: Refactor present failure handling
Shouldn't deadlock anymore...
2 years ago
Stenzek 0234137be4
VulkanDevice: Use VK_EXT_surface_maintenance1
NVIDIA drivers return a minImageCount of 3 with the base surface query
capability, but require 4 images for XWayland in immediate present mode.
2 years ago
Stenzek eb46142ee7
GPUDevice: Extract swap chain to separate class 2 years ago
Stenzek 7ce4c34936
VulkanDevice: Scissor rect should never be negative 2 years ago
Stenzek 26b6c704f0
MemMap: Support dynamic page size selection
i.e. 4K to 16K on ARM64.
2 years ago