summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
AgeCommit message (Collapse)Author
2020-12-02General: Convert PanicAlerts over to fmt equivalentLioncash
Converts lingering panic alert calls over to the fmt-capable ones.
2020-11-09Vulkan: Migrate logging over to fmtLioncash
Migrates the vulkan backend over to the fmt-capable logger.
2020-10-08DriverDetails: Remove bug for broken GPU Texture DecodingTechjar
2020-10-01Vulkan: Use VK_LAYER_KHRONOS_validation for validationStenzek
VK_LAYER_LUNARG_standard_validation is deprecated.
2020-09-07VideoBackends: Disable GPU Texture Decoding under MoltenVKTechjar
It's broken and causes spectacular artifacts and crashes.
2020-04-07Vulkan: Switch from vkCreateMacOSSurfaceMVK() to vkCreateMetalSurfaceEXT()Stenzek
Since we are calling this off the UI thread, we can't use anything which accesses the underlying NSView object. We create and set the Metal layer on the UI thread before the video backend is initialized. This extension is both compatible with MoltenVK and gfx-portability for accepting a layer at surface creation.
2019-11-28Common: Unify logging namespace with CommonLioncash
Previously the logging was a in a little bit of a disarray. Some things were in namespaces, and other things were not. Given this code will feature a bit of restructuring during the transition over to fmt, this is a good time to unify it under a single namespace and also remove functions and types from the global namespace. Now, all functions and types are under the Common::Log namespace. The only outliers being, of course, the preprocessor macros.
2019-10-31Vulkan: Exclusive fullscreen support via VK_EXT_full_screen_exclusiveStenzek
2019-10-31Vulkan: Explicitly enable VK_KHR_get_physical_device_properties2Stenzek
This was missing from the subgroup PR way back.
2019-10-31Vulkan: Allow runtime querying of enabled extensionsStenzek
2019-10-02Vulkan: Add a DriverDetails bug for "slow cached readback memory"Stenzek
Using the cached memory type appears to be slower on Mali drivers, with ~10-15% CPU spent in the __pi___inval_cache_range kernel function.
2019-10-02Vulkan: Add strict flag to memory type selectionStenzek
2019-07-19Merge pull request #8249 from lioncash/rectConnor McLaughlin
VideoCommon: Remove unused MathUtil.h include from VideoCommon.h
2019-07-18Vulkan: Use reversed depth range in viewportStenzek
Also adds a DriverDetails bug to disable on drivers where this is still broken.
2019-07-16VideoCommon: Remove unused MathUtil.h include from VideoCommon.hLioncash
This header doesn't actually make use of MathUtil.h within itself, so this can be removed. Many other source files used VideoCommon.h as an indirect include to include MathUtil.h, so these includes can also be adjusted. While we're at it, we can also migrate valid inclusions of VideoCommon.h into cpp files where it can feasibly be done to minimize propagating it via other headers.
2019-04-16AbstractPipeline: Support returning "cache data"Stenzek
"Cache data" can be used to assist a driver with creating pipelines by using previously-compiled shader ISA.
2019-03-30Vulkan: Fix crash when checking subgroup support on MesaStenzek
2019-03-29Vulkan: Support subgroup reduction operations via GL_KHR_shader_subgroupStenzek
2019-03-09VideoConfig: Add SupportsPartialDepthCopies to backend infoStenzek
D3D11 doesn't support partial copies of depth buffers via CopySubResource(), so we need to use a different path for the EFB cache.
2019-02-19Move most backend functionality to VideoCommonStenzek
2019-02-15Vulkan: Support runtime selection of WSIStenzek
2019-02-03WiimoteEmu: Remove redundant Matrix library and use the one in Common.Jordan Woyak
2018-11-07Vulkan: Support macOS via MoltenVKStenzek
The path to the MoltenVK library can be specified by the LIBMOLTENVK_PATH environment variable, otherwise it assumes it is located in the application bundle's Contents/MacOS directory.
2018-08-29Vulkan: Drop usage of VK_NV_glsl extensionStenzek
It's not providing a large performance improvement anymore, after the more recent drivers introduced a new shader compiler.
2018-05-26VideoConfig: Add a field for indicating logic op support in the backendStenzek
2018-04-16Common/Logging/Log: Wrap GENERIC_LOG macro's body in do { } while (0)Lioncash
Enforces the termination of GENERIC_LOGs with semicolons.
2018-04-12Reformat all the things!spycrab
2018-03-14Assert: Uppercase assertion macrosLioncash
Macros should be all upper-cased. This is also kind of a wart that's been sticking out for quite a while now (we avoid prefixing underscores).
2018-03-14Vulkan: Provide a more accurate method of detecting drivers/vendorsStenzek
This is needed to differentiate between the open-source Mesa drivers and their binary counterparts for Intel and AMD.
2018-03-10OGL: Re-implement async shader compilingStenzek
2018-02-11VideoConfig: Remove bForceCopyToRam fieldStenzek
It's the inverse of supports-copy-to-vram.
2018-01-05Implement dual-source blending in shaderJonathan Hamilton
For some GLES drivers that don't support dual-source blending, but do support GL_EXT_shader_framebuffer_fetch, this might be useful.
2017-11-21VideoConfig: Remove bSupportsInternalResolutionFrameDumpsStenzek
Field is unused as of Hybrid XFB.
2017-11-17Software Backend: Force EFB/XFB to copy to ramiwubcode
2017-11-17Add support for hybrid XFBiwubcode
2017-10-11Vulkan: Improve readability of device/instance extension checksStenzek
2017-10-11Vulkan: Use VK_NV_glsl extension where available, and skip glslangStenzek
2017-09-09Common: Move version strings to their own headerLioncash
Ideally Common.h wouldn't be a header in the Common library, and instead be renamed to something else, like PlatformCompatibility.h or something, but even then, there's still some things in the header that don't really fall under that label This moves the version strings out to their own version header that doesn't dump a bunch of other unrelated things into scope, like what Common.h was doing. This also places them into the Common namespace, as opposed to letting them sit in the global namespace.
2017-09-06Merge pull request #6012 from stenzek/drop-nv-glslJules Blok
Vulkan: Drop VK_NV_glsl extension support
2017-09-05Vulkan: Use a separate queue for presenting.spxtr
Before this change, we simply fail if the device does not expose one queue family that supports both graphics and present. Currently this is fine, since devices tend to lay out their queues in this way. NV, for instance, tends to have one queue family for all graphics operations and one more for transfer only. However, it's not a hard requirement, and it is cheap to use a separate queue, so we might as well.
2017-09-03Revert "Vulkan: Use VK_NV_glsl extension where available, and skip glslang"Stenzek
This reverts commit d23fd17e1a2c7c617731d619020af021a7658e93. Dynamic sampler indexing is broken in VK_NV_glsl as of 385.41. The performance gap doesn't seem to be as wide with the updated driver, so to save maintaining two code paths, it's easier to just drop the extension support completely.
2017-08-01HiresTextures: Support loading BC7 (BPTC) from DDS filesStenzek
2017-07-30ShaderGen: Implement pixel ubershadersStenzek
2017-07-30Vulkan: Use VK_NV_glsl extension where available, and skip glslangStenzek
Seems to produce faster ubershaders, at least.
2017-04-29Vulkan: Support native compressed texturesStenzek
2017-04-29HiresTextures: Support parsing DDS files directlyStenzek
This leaves DDS textures using DXT1/3/5 compressed in-memory, which can be passed directly to the backend.
2017-04-25VideoConfigDiag: Move post-processing shader list to post processorStenzek
The backends don't use this list at all, and since more than one backend supports post-processing now, it's duplicate code.
2017-04-25Vulkan: Implement post-processing backendStenzek
No new features, just parity with OpenGL.
2017-04-01Vulkan: Implement compute-shader based GPU texture decodingStenzek
2017-04-01Vulkan: Compute shader supportStenzek