Commit graph

53 commits

Author SHA1 Message Date
JosJuice
547d956278 Common: Use C++20 <bit> header in BitSet.h 2022-12-18 16:51:32 +01:00
iwubcode
5dd2704416 D3D / VideoCommon: generate HLSL from SPIRV 2022-06-24 18:09:53 -05:00
Pokechu22
23cdb5c576 VideoBackends/D3D11: Include HRESULT in error messages 2022-01-09 12:44:15 -08:00
Pokechu22
82acfa6a46 VideoBackends/D3D: Eliminate CHECK in favor of ASSERT_MSG 2022-01-09 12:44:13 -08:00
Pokechu22
2025763420 Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
Pokechu22
4a9b26de86 VideoCommon: Expose SamplerState to shaders
The benefit to exposing this over the raw BP state is that adjustments Dolphin makes, such as LOD biases from arbitrary mipmap detection, will work properly.
2021-11-17 20:04:34 -08:00
Pierre Bourdon
e149ad4f0a
treewide: convert GPLv2+ license info to SPDX tags
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
2021-07-05 04:35:56 +02:00
Pokechu22
70f9fc4e75 Convert BPMemory to BitField and enum class
Additional changes:
- For TevStageCombiner's ColorCombiner and AlphaCombiner, op/comparison and scale/compare_mode have been split as there are different meanings and enums if bias is set to compare.  (Shift has also been renamed to scale)
- In TexMode0, min_filter has been split into min_mip and min_filter.
- In TexImage1, image_type is now cache_manually_managed.
- The unused bit in GenMode is now exposed.
- LPSize's lineaspect is now named adjust_for_aspect_ratio.
2021-03-06 19:27:19 -08:00
Shawn Hoffman
5770ff01f3 rename D3DCommon/Common to D3DCommon/D3DCommon 2021-01-27 14:29:48 -08:00
Lioncash
2345d5f98d D3D: Migrate logging over to fmt
Migrates the logging over to the fmt-capable logger.
2020-11-09 03:02:00 -05:00
Silent
baa9636d48
D3D11: Add extra logging to StateCache::Get 2019-07-29 16:48:24 +02:00
Silent
ff00873610
D3D11: Query for output merger logic op support and use logic op code only if supported
Previously code assumed that if DX11.1 runtime is supported, logic ops will,
but Windows 7 SP1 with a Platform Update supports DX11.1 runtime without logic ops.
This created pretty jarring visual artifacts, which now should be gone OR replaced
with much less jarring errors.
2019-07-29 16:47:39 +02:00
Silent
77425ef83b
D3D11: Ownership fixes for objects in D3DState 2019-07-29 16:39:21 +02:00
Stenzek
d0d010f854 D3D11: Make stateman a unique_ptr 2019-03-29 19:55:00 +10:00
Stenzek
1151a1238f D3D11: Use ComPtr smart pointer where possible 2019-03-29 19:52:38 +10:00
Stenzek
3d8014beb5 D3D11: Use D3DCommon where appropriate 2019-03-29 19:52:38 +10:00
Stenzek
f039149198 Move most backend functionality to VideoCommon 2019-02-19 16:57:54 +10:00
Lioncash
d68f437e67 Common: Move BitSet helper functions into the Common namespace 2018-04-23 00:13:55 -04:00
Stenzek
40845e6b8f D3D: Make StateCache thread safe 2018-03-10 15:56:21 +10:00
Stenzek
31111ef143 D3D: Remove state stack from tracker, set explicitly instead 2018-02-22 19:40:55 +10:00
Stenzek
798ec96e14 D3D: Make state cache part of Renderer and not static 2017-11-22 18:17:07 +10:00
Tommaso Checchi
5fb6ceac45 Fixed fog, lava, water in Mario Galaxy (and possibly other games) in higher IRs by detecting & fixing the mipmaps that aren't just used for downscaling, but are handmade to create a gradient. 2017-10-27 00:45:20 -07:00
Stenzek
24ddea04ce VideoBackends: Move SamplerState to common 2017-09-11 20:01:54 +10:00
Stenzek
836b9b9acb Renderer: Move cull mode to a rasterization state object
Also moves logic for primitive handling to VideoCommon.
2017-09-11 20:01:45 +10:00
Stenzek
2869c570f1 Renderer: Move depth state to VideoCommon and seperate from bpmem 2017-09-11 19:40:26 +10:00
iwubcode
1ccfccdcf0 D3D: Properly handle dual source blending 2017-09-05 23:51:31 -05:00
Stenzek
90051536bf D3D: Support logic op through integer render target view
This brings D3D to parity with OpenGL and Vulkan.
2017-09-04 10:07:36 +10:00
Stenzek
5c9bc8b79c D3D11: Use blending state from VideoCommon 2017-09-03 14:14:54 +10:00
Lioncash
64de8a9d0b D3D: Eliminate redundant ID3D11DeviceChild* casts 2017-09-02 14:45:14 -04:00
Stenzek
4bf5625895 D3D: Uber shader support 2017-07-30 17:43:59 +10:00
Jules Blok
ab5054c34e VideoBackends: Always enable dual-source blending if supported. 2016-10-10 17:32:51 +02:00
Jules Blok
e9e81ece65 VideoBackends: Enable depth clamping. 2016-08-15 13:11:25 +02:00
Pierre Bourdon
3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
EmptyChaos
0b9a72a62d VideoCommon: Refactor TexMode0 mipmaps disabled test into a helper function 2016-03-24 13:43:29 +11:00
EmptyChaos
902e5cddf7 VideoBackends: Do not use Anisotropy on Point filtered textures.
The D3D backend was always forcing Anisotropic filtering when that is enabled regardless of how the game chose to configure the texture filtering registers; this causes the same issues as "Force Filtering" without Anisotropy, such as causing game UI elements to no longer line up adjacent correctly. Historically, OpenGL's Anisotropy support has always worked "better" than D3D's due to seeming to not have this problem; unfortunately, OpenGL's Anisotropy specification only gives GL_LINEAR based filtering modes defined behavior, with only the mipmap setting being required to be considered. Some OpenGL implementations were implicitly disabling Anisotropy when the min/mag filters were set to GL_NEAREST, but this behavior is not required by the spec so cannot be relied on.
2016-03-24 13:43:29 +11:00
Lioncash
cc036ca86c Common: Remove other Common prefixed headers from Common.h 2015-09-26 18:51:58 -04:00
Lioncash
daa205990f Use emplace() instead of insert() where applicable for maps. 2015-06-28 19:52:40 -04:00
Matthew Parlane
45aeeee699 Fix aniso filtering on d3d to not set aniso filter when using 1x 2015-06-19 20:55:32 +12:00
galop1n
2975e53091 D3D: Depth range inversion.
Credits go to Galop1n for designing this technique and to BhaaLseN for cleaning up the commit.
2015-05-26 15:31:31 +02:00
Tillmann Karras
30ebb2459e Set copyright year to when a file was created 2015-05-25 13:22:31 +02:00
Tillmann Karras
cefcb0ace9 Update license headers to GPLv2+ 2015-05-25 13:22:31 +02:00
Yuriy O'Donnell
df5750edfd D3D: Replaced explicit _BitScanForward with LeastSignificantSetBit 2015-05-03 21:14:29 +02:00
Yuriy O'Donnell
2b664f5d89 D3D: StateManager::Apply no longer iterates through every texture and sampler slot
Now using bit scan through dirty slot masks.
2015-04-29 20:08:00 +02:00
Jules Blok
c9e469f832 D3DState: Remove wireframe rasterizer support. 2014-12-19 14:10:52 +01:00
Yuriy O'Donnell
5688c27610 D3D: Moved setting texture by slot mask into StateManager 2014-12-17 23:41:26 +01:00
Yuriy O'Donnell
764aee6995 D3D: Fixed D3D validation error during EFB to texture copy
Texture was being bound as a render target while still being set as a shader resource.
D3D automatically unbinds the SRV in this case and generates a validation error.
The fix is to manually unbind SRV, render into it and then re-bind to old slots.
2014-12-13 00:32:08 +01:00
Yuriy O'Donnell
80459c52e9 D3D: StateManager m_current and m_pending are now value-initialized 2014-12-07 18:45:49 +01:00
Yuriy O'Donnell
0e18e9e80d D3D: Removed cull mode changes for lines and points
Fixed include order and whitespace
2014-12-07 18:45:20 +01:00
Yuriy O'Donnell
6e9226650d D3D: Implemented context state caching
This avoids most of the redundant API calls.
2014-12-07 18:17:19 +01:00
Stevoisiak
6da394a4d0 More formatting and consistency fixes 2014-11-24 17:16:59 -05:00