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
21d81f99ff
VideoBackends: Fix GPU decoding of XFB buffers
...
Was using UNORM instead of UINT, resulting in invalid values.
2019-02-28 20:35:22 +10:00
Stenzek
f039149198
Move most backend functionality to VideoCommon
2019-02-19 16:57:54 +10:00
Stenzek
b01df8670f
Renderer: Fix throttle-disable (TAB) hotkey when vsync is enabled
2019-01-27 12:31:12 +10:00
Stenzek
e4b205c769
Decouple XFB scanout from presentation
2019-01-25 11:15:57 +10:00
Stenzek
c9c0b85056
VideoBackends: Store a backbuffer 'scale'
...
This is a scaling factor, used for hi-dpi configurations.
2019-01-25 11:15:57 +10:00
Stenzek
63dd91628d
Remove old RasterFont classes
2019-01-25 11:15:57 +10:00
Stenzek
600d1fc0bc
Renderer: Use imgui for drawing debug text and OSD
2019-01-25 11:15:57 +10:00
Stenzek
d1868d9475
RenderBase: Implement imgui rendering
2019-01-25 11:10:49 +10:00
Stenzek
7afd5cc2fb
Use main buffers for utility draws
2018-12-04 17:37:25 +10:00
Stenzek
b409a87d1a
D3D: Clamp viewport to current framebuffer dimensions, not target
2018-12-04 17:36:08 +10:00
Stenzek
2644e920cc
Renderer: Add backbuffer format to base class
2018-12-04 17:36:08 +10:00
Stenzek
1adcd47dcb
Renderer: Add a base Initialize() method to match Shutdown()
2018-12-04 17:36:08 +10:00
Stenzek
8e2c063d62
TextureCache: Implement deferred/batched EFB copies
2018-11-07 16:25:01 +10:00
Stenzek
eb284b5d66
VideoBackends: Pass window system info from host on creation
2018-10-20 21:11:34 +10:00
Stenzek
1d827a5223
Renderer: Pull dimensions from GLInterface/Swapchain
2018-10-20 21:11:34 +10:00
Stenzek
a3961750a7
Drop Host_GetRenderSurface and pass display to backend
2018-10-20 21:11:34 +10:00
Tillmann Karras
97cc9894e4
Update to Visual Studio's default Windows SDK
2018-10-20 00:53:08 +01:00
Stenzek
eb33d7af64
Core: Call InitBackendInfo before loading config
2018-09-28 21:44:41 +10:00
Stenzek
b30342d38f
VideoBackends: Support D24S8 abstract texture format
2018-07-19 21:47:42 +10:00
Techjar
dc2f22516c
Mark all video backend names for translation
2018-06-30 06:30:19 -04:00
Stenzek
640bfb8135
VideoConfig: Add a field for indicating logic op support in the backend
2018-05-26 00:07:20 +10:00
Stenzek
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
Emmanuel Gil Peyrot
c51ae9c62a
Remove SOIL altogether from the project.
2018-05-20 13:44:42 +02:00
Markus Wick
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
Stenzek
3493d738ca
D3D/Vulkan: Fix incorrect clamp in EFB RAM copy
...
This could cause darker-than-expected EFB copies if clamping was not
enabled, and the user forced EFB copies to RAM only.
2018-05-11 00:32:39 +10:00
Stenzek
4faac3a627
TextureConversionShader: Don't sample from adjacent rows when not needed
2018-05-03 14:09:32 +10:00
Stenzek
7a745e5b0d
D3D: Drop gamma parameter from util draw helper
...
No longer needed as we perform gamma correction during the XFB copy.
2018-05-02 21:58:56 +10:00
Stenzek
9e798eec94
Implement EFB copy filter and gamma in hardware backends
...
Also makes y_scale a dynamic parameter for EFB copies, as it doesn't
make sense to keep it as part of the uid, otherwise we're generating
redundant shaders.
2018-04-29 19:05:20 +10:00
Lioncash
d68f437e67
Common: Move BitSet helper functions into the Common namespace
2018-04-23 00:13:55 -04:00
spycrab
40bb9974f2
Reformat all the things!
2018-04-12 21:28:39 +02:00
Lioncash
3854e2bcca
D3D/CMakeLists: Migrate off add_dolphin_library
...
Continues the migration work started in 3a4c3bbe01
2018-04-02 08:15:22 -04:00
Markus Wick
523031f037
Merge pull request #6444 from stenzek/d3d-bbox
...
D3D: Fix broken bounding box
2018-03-19 09:21:22 +01:00
Lioncash
7926a0c814
Use __func__ instead of __FUNCTION__ where applicable
...
This replaces usages of the non-standard __FUNCTION__ macro with the standard
mandated __func__ identifier.
__FUNCTION__ is a preprocessor definition that is provided as an
extension by compilers. This was the only convenient option to rely on
pre-C++11. However, C++11 and greater mandate the predefined identifier
__func__, which lets us accomplish the same thing.
The difference between the two, however, is that __func__ isn't a
preprocessor macro, it's an actual identifier that exists at function
scope. The C++17 draft standard (N4659) at section [dcl.fct.def.general]
paragraph 8 states:
"
The function-local predefined variable __func__ is defined as if a
definition of the form
static const char __func__[] = "function-name ";
had been provided, where function-name is an implementation-defined
string. It is unspecified whether such
a variable has an address distinct from that of any other object in the
program.
"
Thankfully, we don't do any macro or string concatenation with __FUNCTION__
that can't be modified to use __func__.
2018-03-16 13:41:53 -04:00
Lioncash
75f5fcdfee
Assert: Remove unused parameter from DEBUG_ASSERT
...
This brings the macro in line with the regular ASSERT macro, which only has one
macro parameter.
2018-03-16 13:01:11 -04:00
Stenzek
cb19ddd1d4
D3D: Fix broken bounding box
2018-03-17 00:20:43 +10: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
f9c829c7f7
OGL: Re-implement async shader compiling
2018-03-10 15:56:34 +10:00
Stenzek
dec0c3bce8
Move shader caches to VideoCommon
2018-03-10 15:56:30 +10:00
Stenzek
1ddc4c5568
D3D: Make NativeVertexFormat thread safe
2018-03-10 15:56:24 +10:00
Stenzek
40845e6b8f
D3D: Make StateCache thread safe
2018-03-10 15:56:21 +10:00
Stenzek
bfb4709c80
AbstractPipeline: Allow setting pipeline to null
2018-03-10 15:56:18 +10:00
Stenzek
4c24a69710
VideoCommon: Add support for Abstract Framebuffers
2018-03-02 20:20:48 +10:00
Stenzek
2a6d9e4713
AbstractTexture: Add support for depth textures/formats
2018-03-01 17:31:24 +10:00
Stenzek
6374a4c4a8
AbstractTexture: Support multisampled abstract texture
2018-03-01 17:31:24 +10:00
Stenzek
887e3830ba
VideoBackends: Restore the framebuffer as part of the API state
...
It's not often we switch out to draw to the EFB anyway.
2018-03-01 17:31:24 +10:00
Stenzek
fec6bb4d56
VideoBackends: Add AbstractShader and AbstractPipeline classes
2018-02-22 22:02:34 +10:00
Stenzek
31111ef143
D3D: Remove state stack from tracker, set explicitly instead
2018-02-22 19:40:55 +10:00
Stenzek
e18c7b1c33
D3D: Support state tracking of compute shaders
2018-02-22 19:11:27 +10:00
Stenzek
e8ff2b2006
D3D: Support compiling compute shaders
2018-02-22 19:11:25 +10:00