Connor McLaughlin
fc8859a414
Merge pull request #8249 from lioncash/rect
...
VideoCommon: Remove unused MathUtil.h include from VideoCommon.h
2019-07-19 16:32:30 +10:00
Stenzek
68bd4cd79a
Vulkan: Use reversed depth range in viewport
...
Also adds a DriverDetails bug to disable on drivers where this is still
broken.
2019-07-18 23:43:12 +10:00
Lioncash
2b9389202e
VideoCommon: Remove unused MathUtil.h include from VideoCommon.h
...
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-07-16 20:54:34 -04:00
Stenzek
61a656570e
AbstractPipeline: Support returning "cache data"
...
"Cache data" can be used to assist a driver with creating pipelines by
using previously-compiled shader ISA.
2019-04-16 00:09:47 +10:00
Stenzek
b685a66753
Vulkan: Fix crash when checking subgroup support on Mesa
2019-03-30 00:18:26 +10:00
Stenzek
6561850f2b
Vulkan: Support subgroup reduction operations via GL_KHR_shader_subgroup
2019-03-29 20:06:56 +10:00
Stenzek
65216c9e87
VideoConfig: Add SupportsPartialDepthCopies to backend info
...
D3D11 doesn't support partial copies of depth buffers via
CopySubResource(), so we need to use a different path for the EFB cache.
2019-03-09 12:19:53 +10:00
Stenzek
f039149198
Move most backend functionality to VideoCommon
2019-02-19 16:57:54 +10:00
Stenzek
f9869cb216
Vulkan: Support runtime selection of WSI
2019-02-15 18:40:46 +10:00
Jordan Woyak
69b617ce76
WiimoteEmu: Remove redundant Matrix library and use the one in Common.
2019-02-03 12:02:02 -06:00
Stenzek
673f1963a0
Vulkan: Support macOS via MoltenVK
...
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-11-07 05:41:09 -08:00
Stenzek
448e19629d
Vulkan: Drop usage of VK_NV_glsl extension
...
It's not providing a large performance improvement anymore, after the
more recent drivers introduced a new shader compiler.
2018-08-29 13:12:19 +10:00
Stenzek
640bfb8135
VideoConfig: Add a field for indicating logic op support in the backend
2018-05-26 00:07:20 +10:00
Lioncash
b0dc823472
Common/Logging/Log: Wrap GENERIC_LOG macro's body in do { } while (0)
...
Enforces the termination of GENERIC_LOGs with semicolons.
2018-04-16 12:11:32 -04:00
spycrab
40bb9974f2
Reformat all the things!
2018-04-12 21:28:39 +02:00
Lioncash
50a476c371
Assert: Uppercase assertion macros
...
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-14 22:03:12 -04:00
Stenzek
db810956ec
Vulkan: Provide a more accurate method of detecting drivers/vendors
...
This is needed to differentiate between the open-source Mesa drivers and
their binary counterparts for Intel and AMD.
2018-03-14 02:48:53 +10:00
Stenzek
f9c829c7f7
OGL: Re-implement async shader compiling
2018-03-10 15:56:34 +10:00
Stenzek
84b990faa0
VideoConfig: Remove bForceCopyToRam field
...
It's the inverse of supports-copy-to-vram.
2018-02-11 15:29:37 +10:00
Jonathan Hamilton
29a9ed043b
Implement dual-source blending in shader
...
For some GLES drivers that don't support dual-source blending, but do
support GL_EXT_shader_framebuffer_fetch, this might be useful.
2018-01-05 09:56:46 -08:00
Stenzek
39559f6358
VideoConfig: Remove bSupportsInternalResolutionFrameDumps
...
Field is unused as of Hybrid XFB.
2017-11-21 17:19:43 +10:00
iwubcode
1090549552
Software Backend: Force EFB/XFB to copy to ram
2017-11-17 22:11:31 -06:00
iwubcode
79387dddb2
Add support for hybrid XFB
2017-11-17 19:47:56 -06:00
Stenzek
06bbf111d9
Vulkan: Improve readability of device/instance extension checks
2017-10-11 23:18:01 +10:00
Stenzek
79188d4f55
Vulkan: Use VK_NV_glsl extension where available, and skip glslang
2017-10-11 23:15:41 +10:00
Lioncash
696e1b40b5
Common: Move version strings to their own header
...
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-09 19:28:10 -04:00
Jules Blok
e103a58d87
Merge pull request #6012 from stenzek/drop-nv-glsl
...
Vulkan: Drop VK_NV_glsl extension support
2017-09-06 13:19:47 +02:00
spxtr
a5be5a3a76
Vulkan: Use a separate queue for presenting.
...
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-05 12:00:09 -07:00
Stenzek
254160691a
Revert "Vulkan: Use VK_NV_glsl extension where available, and skip glslang"
...
This reverts commit d23fd17e1a
.
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-09-03 15:31:19 +10:00
Stenzek
63305e9173
HiresTextures: Support loading BC7 (BPTC) from DDS files
2017-08-01 11:59:38 +10:00
Stenzek
7d78cf0f6f
ShaderGen: Implement pixel ubershaders
2017-07-30 17:43:59 +10:00
Stenzek
d23fd17e1a
Vulkan: Use VK_NV_glsl extension where available, and skip glslang
...
Seems to produce faster ubershaders, at least.
2017-07-30 12:38:49 +10:00
Stenzek
c53a60f3c3
Vulkan: Support native compressed textures
2017-04-29 13:46:42 +10:00
Stenzek
bc8a96d713
HiresTextures: Support parsing DDS files directly
...
This leaves DDS textures using DXT1/3/5 compressed in-memory, which can
be passed directly to the backend.
2017-04-29 00:14:23 +10:00
Stenzek
27ae5b8d34
VideoConfigDiag: Move post-processing shader list to post processor
...
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-25 14:27:05 +10:00
Stenzek
417a4ca206
Vulkan: Implement post-processing backend
...
No new features, just parity with OpenGL.
2017-04-25 14:27:02 +10:00
Stenzek
739aced97c
Vulkan: Implement compute-shader based GPU texture decoding
2017-04-01 12:32:57 +10:00
Stenzek
5fbc63fbcf
Vulkan: Compute shader support
2017-04-01 12:32:57 +10:00
Stenzek
82fd984f3e
VideoBackends: Add configuration field for GPU texture decoding
2017-04-01 12:32:05 +10:00
Stenzek
b987f220e1
VideoBackends: Add support flag for compute shaders
2017-04-01 12:31:41 +10:00
Michael Maltese
de940a5fd6
VideoConfig: add bSupportsFragmentStoresAndAtomics
2017-03-15 17:20:47 -07:00
Jules Blok
0a2b58c896
OGL: Remove support for NV_depth_buffer_float.
...
We can't clamp the depth values to the 24-bit range while this extension is active.
2017-03-14 01:02:13 +01:00
Markus Wick
e99cd57eb3
Merge pull request #4935 from Armada651/depth-range-fix
...
VideoBackends: Set the maximum range when the depth range is oversized.
2017-03-10 18:05:52 +01:00
Stenzek
2cd240af0d
VideoBackends: Move max texture size to VideoConfig
...
This stops the virtual method call from within the Renderer constructor.
The initialization here for GL had to be moved to VideoBackend, as the
Renderer constructor will not have been executed before the value is
required.
2017-03-10 00:04:13 +10:00
Jules Blok
94522d4cf3
OGL: Add support for glDepthRangedNV to handle oversized depth ranges.
2017-02-24 14:54:16 +01:00
Stenzek
50fa135594
Vulkan: Handle BUG_PRIMITIVE_RESTART
2017-02-18 15:07:34 +10:00
Stenzek
3b218c64b1
Vulkan: Refactor initialization to only use a single instance
...
Hopefully will fix the crash in vkDestroyInstance on the NV Shield TV,
and likely reduce boot times slightly for drivers that take a while
to create instances.
2017-01-29 22:18:53 +10:00
Stenzek
8f97a24904
Vulkan: Enable GS instancing
2016-12-04 20:53:49 +10:00
Stenzek
4e9018049d
Vulkan: Support logging debug reports without enabling validation layers
...
There is a caveat, Host GPU must be checked prior to starting the game, as
we can't enable the extension at runtime without recreating the instance.
2016-12-04 19:55:12 +10:00
Stenzek
4c860ddb70
Vulkan: Fix typo in PopulateBackendInfoMultisampleModes
2016-12-04 00:23:30 +10:00