7efdd1070b
OGL: Fix crash when opening graphics window on another backend
2018-11-07 21:20:12 +10:00
66b6e72c5e
Vulkan: Submit fewer command buffers in deferred EFB copies mode
2018-11-07 16:25:01 +10:00
8e2c063d62
TextureCache: Implement deferred/batched EFB copies
2018-11-07 16:25:01 +10:00
f1413dbbf6
Merge pull request #7501 from Techjar/class-memaccess-cleanup
...
VideoCommon: Clean up class-memaccess warnings
2018-10-28 23:59:51 +01:00
7c4607a05a
Vulkan: Add missing increment of draw call count
2018-10-28 11:32:26 +10:00
0559311f92
GLContext: Runtime selection of EGL/GLX on Linux
2018-10-20 21:11:34 +10:00
025e909773
GLContext: Use destructor instead of Shutdown() to cleanup
...
Also uses the Initialize() method to make the context current.
2018-10-20 21:11:34 +10:00
dcdd02d646
GLContext: Remove global context pointer
2018-10-20 21:11:34 +10:00
eb284b5d66
VideoBackends: Pass window system info from host on creation
2018-10-20 21:11:34 +10:00
9c57a98723
GLContext: Use host connection
...
This also removes the need for a sleeping event thread.
2018-10-20 21:11:34 +10:00
1d827a5223
Renderer: Pull dimensions from GLInterface/Swapchain
2018-10-20 21:11:34 +10:00
a3961750a7
Drop Host_GetRenderSurface and pass display to backend
2018-10-20 21:11:34 +10:00
134d967be2
Refactoring and cleanup of GLInterface (now GLContext)
2018-10-20 21:11:34 +10:00
97cc9894e4
Update to Visual Studio's default Windows SDK
2018-10-20 00:53:08 +01:00
8560eecd49
VideoCommon: Clean up class-memaccess warnings
2018-10-14 23:05:47 -04:00
e3f475b30e
NullBackend: Initialize vtx_decl in VertexFormat
...
This field was previously left uninitialized, which resulted in corrupted
UID caches being created.
2018-10-14 21:24:09 +10:00
ecd4897d43
Merge pull request #7437 from stenzek/graphics-options-race
...
Fix race condition caused by opening graphics options while running
2018-10-12 10:29:28 -04:00
2e905455b1
OGL: Disable scissor test when calling glBlitFramebuffer()
...
glBlitFramebuffer() does not bypass the scissor test, which meant that
part of texture copies (e.g. XFB) could have been clipped when running
under OpenGL ES, as glCopyImageSubData() is not supported.
2018-10-09 22:00:40 +10:00
56fdcf5f00
VideoCommon: remove unnecessary floor()
...
floatindex is clamped to the range [0, 9]. For non-negative numbers
floor() is equivalent to trunc(). Truncation happens implicitly when
converting to uint, so the floor() is unnecessary.
2018-10-09 00:31:43 +01:00
1ab1d41b10
Merge pull request #7457 from Tilka/use_clamp
...
VideoSoftware: make use of Clamp()
2018-10-07 19:53:45 +01:00
af2f212039
Merge pull request #7348 from spycrab/gl_cache_shaders
...
GL/TextureCache: Clean up inline shader code
2018-10-06 00:28:54 +01:00
a6a5d86cd8
VideoSoftware: make use of Clamp()
2018-10-05 22:07:38 +01:00
eb33d7af64
Core: Call InitBackendInfo before loading config
2018-09-28 21:44:41 +10:00
392df8a11d
GL/TextureCache: Clean up inline shader code
2018-08-30 16:05:39 +02:00
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
3323265d91
FramebufferManager: Dynamic selection of EFB depth format
2018-07-19 21:47:42 +10:00
b30342d38f
VideoBackends: Support D24S8 abstract texture format
2018-07-19 21:47:42 +10:00
dc2f22516c
Mark all video backend names for translation
2018-06-30 06:30:19 -04:00
540bb1a1b0
Software: Don't link against X11 libraries
...
The software backend doesn't actually use X11 in any capacity directly.
2018-06-21 01:47:37 -04:00
c93210155f
Merge pull request #7075 from Ebola16/DumpObjects
...
Software Renderer "Dump Objects" needs dedicated folder and tooltip
2018-06-06 15:20:14 +02:00
45b9b7d211
Give Dump Objects dedicated folder and tooltip
2018-06-06 08:42:41 -04:00
36ff2a20d5
Merge pull request #6954 from degasus/coherent
...
OGL/Streambuffer: Use coherent mapping by default.
2018-06-05 12:06:17 -07:00
6ce9c96d91
Merge pull request #7027 from leoetlino/cleanup
...
Use some C++17 features available since GCC 6
2018-06-04 20:50:50 +02:00
bc96557ec4
Externals: Update glslang to upstream commit 32d3ec3
2018-06-02 07:34:31 +00:00
8a00a9e149
Remove old GCC version checks
2018-05-30 10:59:15 +02:00
640bfb8135
VideoConfig: Add a field for indicating logic op support in the backend
2018-05-26 00:07:20 +10:00
fdfd8b19d6
OGL/Streambuffer: Use coherent mapping by default.
...
Coherent mappings have a lower overhead and less GL codes.
So enables coherent mapping by default for all drivers.
Both Qualcomm and ARM performs very bad with explicit flushing, so this change helps them as well.
AFAIK there was one GPU generation which was slower on coherent mapping: nvidia tesla
So Geforce 200 and 300 series should be tested with this PR before merging.
As this was last tested many years ago, this issue might have been fixed as well.
Those GPUs are close to 10 years old and not supported any more by nvidia.
2018-05-24 00:00:02 +02:00
d0c025bf0b
OGL: Fix EFB access in MSAA-mode
2018-05-22 15:35:20 +10:00
f74dbc794c
EFB2RAM: Apply copy filter as a float coefficient after sampling
...
Using 8-bit integer math here lead to precision loss for depth copies,
which broke various effects in games, e.g. lens flare in MK:DD.
It's unlikely the console implements this as a floating-point multiply
(fixed-point perhaps), but since we have the float round trip in our
EFB2RAM shaders anyway, it's not going to make things any worse. If we
do rewrite our shaders to use integer math completely, then it might be
worth switching this conversion back to integers.
However, the range of the values (format) should be known, or we should
expand all values out to 24-bits first.
2018-05-22 12:24:08 +10:00
8a1a924e2e
Vulkan/PostProcessing: Make file-scope std::string instances const char arrays
...
Avoids performing avoidable file-scope heap allocations
2018-05-21 12:29:05 -04:00
c51ae9c62a
Remove SOIL altogether from the project.
2018-05-20 13:44:42 +02:00
505d45a233
EfbInterface: Move buffer constant from the header to the cpp file
...
This is only ever used internally, so we can limit its scope to the only
usage point.
2018-05-18 16:23:34 -04:00
5eef8ba984
EfbInterface: Make efb and perf_values std::arrays
2018-05-18 16:23:29 -04:00
c58b5e9b9b
EfbInterface: Make perf_values internally linked
...
Instead, expose functions to operate with it. This way we keep the
internal representation concealed.
2018-05-18 15:35:08 -04:00
f3a8874214
EfbInterface: Move efb array into the EfbInterface namespace
2018-05-18 15:09:37 -04:00
c485efdfe1
Merge pull request #6743 from stenzek/faster-disabled-copy-filter
...
TextureConversionShader: Don't sample from adjacent rows when not needed
2018-05-17 10:45:50 +02:00
f91b729b61
Merge pull request #6825 from leoetlino/onion-types
...
Config: Fix implicit conversions/enum config types
2018-05-12 21:59:43 +02:00
4e7caa2818
Fix syntax error in GLSL_GS
2018-05-12 15:42:18 +01:00
70b00f2b2d
Remove stray quote sign
...
This allows GLSL_EFB_POKE_GEOMETRY_GS to compile again.
2018-05-12 15:21:29 +01:00
7dca7c237e
Config: Fix template deduction for implicit conversions
...
This excludes the second argument from template deduction.
Otherwise, it is required to manually cast the second argument to
the ConfigInfo type (because implicit conversions won't work).
e.g. to set the value for a ConfigInfo<std::string> from a string
literal, you'd need a ugly `std::string("yourstring")`.
2018-05-12 14:30:18 +02:00