JMC47
828afc6735
Merge pull request #10673 from iwubcode/spirv-backends
...
D3D: Generate HLSL from SPIRV*
2022-07-08 15:29:58 -04:00
Dentomologist
e1e0f42b37
VideoCommon: Fix D3D shader warning X3557 (single iteration loop)
...
Fix warning "loop only executes for 1 iteration(s), forcing loop to
unroll" when vertex_in == 1
2022-07-08 00:25:55 -07:00
Dentomologist
71541c1324
VideoCommon: Fix D3D shader warning X4000 (uninitialized variables)
...
Initialize alpha_A and alpha_B. They were previously only initialized in
cases where they were used, but D3D isn't able to figure that out.
2022-07-08 00:25:14 -07:00
Dentomologist
0fac1d6e87
VideoCommon: Fix D3D shader warning X3571 (negative base for pow())
...
Add abs() to fix "pow(f, e) will not work for negative f, use abs(f) or
conditionally handle negative values if you expect them".
2022-07-08 00:19:05 -07:00
TellowKrinkle
3ee4b89a46
VideoCommon: Remember to flush command buffers after multiple EFB copies
2022-07-06 18:38:05 -05:00
Admiral H. Curtiss
3bcd7aced9
Merge pull request #8467 from CookiePLMonster/interruptable-shader-precompile
...
Make shader precompilation interruptable
2022-07-02 13:08:37 +02:00
JosJuice
07a15a3228
Merge pull request #10624 from Minty-Meeo/resolve-gcc-warnings
...
Resolve Linux GCC Warnings
2022-07-02 09:17:44 +02:00
Minty-Meeo
69e32dea52
Resolve GCC Warnings
2022-06-30 15:26:48 -05:00
iwubcode
4788a05c76
VideoCommon: fix projection graphics mod affecting more than the intended draw call
2022-06-29 20:04:59 -05:00
iwubcode
1480b78f64
VideoCommon: dump EFB with size and texture format details and dump XFB with size details. Finally move count to front of image for XFB/EFB dumps so as to make it easier to see them in order. Change the count value prefix to 'n'
2022-06-27 18:20:52 -05:00
iwubcode
69839df1eb
VideoCommon: support dynamically updating game mods at runtime
2022-06-27 18:20:52 -05:00
iwubcode
892678648e
VideoCommon: trigger mod calls in TextureCacheBase (efb/xfb calls), VertexManagerBase (draw calls), and VertexShaderManager (projection calls)
2022-06-27 18:20:52 -05:00
iwubcode
62c186e14b
VideoCommon: add UninitializeEFBMemory to mirror XFB function
2022-06-27 18:20:52 -05:00
iwubcode
0f88155729
Core / DolphinQt / VideoCommon: add setting for enabling graphic mods
2022-06-27 18:20:52 -05:00
iwubcode
f416b71925
VideoCommon: add logic to handle a GraphicsMod while Dolphin is running
2022-06-27 18:20:52 -05:00
iwubcode
254246b814
VideoCommon: add logic to read a GraphicsMod from configuration
2022-06-27 18:20:52 -05:00
iwubcode
f92beb611f
VideoCommon: add game mod constants
2022-06-26 21:53:21 -05:00
iwubcode
4fbbd85ef4
VideoCommon: create variables for EFB/XFB copy prefix. Reword prefix to 'efb1' and 'xfb1' to match textures
2022-06-26 21:53:21 -05:00
iwubcode
b9995b04a0
VideoCommon: add a way to get have a graphics directory count for all games by using a special 'all.txt' instead of a 'gameid.txt' file
2022-06-26 00:45:13 -05:00
iwubcode
7854afe512
VideoCommon: add support for setting and getting the stage from the texture info
2022-06-26 00:45:13 -05:00
iwubcode
a1892a9c68
VideoCommon: add function to check whether TextureFormat is a valid value
2022-06-26 00:45:13 -05:00
iwubcode
a8b5266347
VideoCommon: enable optimizer and remove debug details when converting GLSL to SPIR-V with validation layers turned off
2022-06-24 18:09:53 -05:00
iwubcode
dda1479ecf
VideoBackends / VideoCommon: refactor Vulkan to use new SPIRV functionality
2022-06-24 18:09:53 -05:00
iwubcode
c2d3b7e7f5
VideoCommon: update pixel shader output to match old D3D code
2022-06-24 18:09:53 -05:00
iwubcode
cad1d6ce90
VideoCommon: fix support of stereoscopic rendering after moving d3d to SPIRV generation
2022-06-24 18:09:53 -05:00
iwubcode
993fa3bf94
VideoCommon: update UberShaderPixel to properly support logic ops, matching the specialized shader
2022-06-24 18:09:53 -05:00
iwubcode
5dd2704416
D3D / VideoCommon: generate HLSL from SPIRV
2022-06-24 18:09:53 -05:00
iwubcode
3790c99a7d
VideoCommon: add common spirv helper functions
...
Co-authored-by: tellowkrinkle <tellowkrinkle@gmail.com>
2022-06-24 17:52:31 -05:00
Pokechu22
1faca4bfc7
Merge pull request #10752 from tellowkrinkle/BetterShaderNames
...
VideoCommon: Better shader names
2022-06-24 15:50:48 -07:00
JMC47
ffa3bf86fb
Merge pull request #10760 from tellowkrinkle/std430
...
VideoCommon: Fix SSBO layout and remove associated "bug"
2022-06-24 18:40:47 -04:00
Pierre Bourdon
6ddff87d42
Merge pull request #10755 from tellowkrinkle/DebugUID
...
VideoCommon: Don't add garbage to shader uids in debug builds
2022-06-22 14:33:23 +02:00
Braxton Anderson
2b2b8e932d
Rename FPS_REFRESH_INTERVAL in VideoCommon/FPSCounter
2022-06-17 20:11:53 -06:00
TellowKrinkle
f79ac768d8
VideoCommon:ShaderCache: Add const to some local variables
2022-06-17 20:14:32 -05:00
TellowKrinkle
26529a31ab
VideoCommon: Fix SSBO layout and remove associated "bug"
2022-06-16 20:26:11 -05:00
TellowKrinkle
c7892d7371
VideoCommon: Name ubershaders
2022-06-16 02:08:45 -05:00
TellowKrinkle
23c1721fbd
VideoCommon: Reduce duplicates of non-palette-requiring texture decode shaders
2022-06-16 02:08:45 -05:00
TellowKrinkle
3fe1a1a3d7
VideoCommon: Don't add garbage to shader uids in debug builds
...
There wasn't anything stopping compilers from doing it in release builds either, but most optimizations would make the padding zero
2022-06-14 21:51:58 -05:00
TellowKrinkle
25929789c1
VideoCommon: Don't pass State by inout
...
Spirv-cross's MSL codegen makes the amazing choice of compiling calls to inout functions as `State temp = s; call_function(temp); s = temp`. Not all Metal backends handle this mess well. In particular, it causes register spills on Intel, losing about 5% in performance.
2022-06-14 00:48:47 -05:00
TellowKrinkle
db6e928c8d
VideoCommon: Fix Intel GPUs on Metal/Vulkan locking up in ubershaders
2022-06-14 00:48:47 -05:00
Silent
7faf5ea170
Clear the UI after async shader compilation
2022-06-10 17:19:59 +02:00
Silent
dcad3ec892
Allow to interrupt shader precompilation by stopping emulation
2022-06-10 17:11:32 +02:00
OatmealDome
6e2febd404
VideoBackendBase: Remove __builtin_available for macOS 10.14
2022-06-01 22:57:51 -04:00
Dentomologist
f6b9acccfc
Common: Refactor PointerWrap
2022-05-25 13:06:41 -07:00
Admiral H. Curtiss
580c721c82
cmake: Don't use PCH with Qt6.
2022-05-22 01:19:44 +02:00
Mai M
a98d0367d8
Merge pull request #10677 from Pokechu22/no-printf-log
...
Remove printf-style logging
2022-05-19 17:55:17 -04:00
Pokechu22
2aa0ae097b
Merge pull request #10672 from Pokechu22/xf-invtxspec
...
Show panic alerts if the CP configuration doesn't match the XF configuration
2022-05-19 13:13:53 -07:00
Pokechu22
0637c17b59
VideoCommon/FrameDump: printf-format messages before logging them
2022-05-19 12:41:58 -07:00
Pokechu22
8df55b492c
Show a panic alert if the CP matrix indices don't match the XF matrix indices
...
This almost certainly never happens, but if it does we want to know.
2022-05-18 14:43:14 -07:00
Pokechu22
38a75f6a49
Show a panic alert if the CP vertex config doesn't match the XF vertex config
...
This probably isn't triggered by real games, but it's possible to accidentally do it with libogc (which results in freezes on real hardware).
2022-05-18 14:43:14 -07:00
Pokechu22
46bcdc4372
Rename CP and XF normal component count enums and update their descriptions
2022-05-18 14:43:14 -07:00
Pokechu22
736466a5d9
XFMemory: Rename hostinfo to invtxspec
2022-05-18 14:43:14 -07:00
Pokechu22
3949698acf
Verify graphics config validity after populating the backend info
...
... and refresh the config before populating the backend info, as the config (specifically iAdapter) needs to be set to correctly populate the backend info.
Before, the list of valid antialiasing modes was always determined from the first adapter on the list on startup, regardless of the adapter the user selected.
2022-05-16 16:59:57 -07:00
Shawn Hoffman
56626f73bf
fmt: fix 'ambigous overload' error
2022-05-10 19:19:52 -07:00
Admiral H. Curtiss
01d4a2e9cc
TextureCacheBase: Don't log error while measuring state size.
2022-04-26 21:26:42 +02:00
JMC47
c0488de482
Merge pull request #10251 from Pokechu22/negative-scissor
...
Rework scissor handling
2022-04-24 15:00:42 -04:00
JMC47
c42392c565
Merge pull request #10290 from OatmealDome/m1-earlyz-bug
...
DriverDetails: Add broken discard with early-Z bug on Apple Silicon GPUs
2022-04-24 13:30:04 -04:00
Pokechu22
784079853d
VideoCommon: Add comment explaining why only the first normal gets normalized
...
Co-authored-by: Scott Mansell <phiren@gmail.com>
2022-04-22 16:54:38 -07:00
Pokechu22
2a5c77f43f
VideoCommon: Handle emboss texgen with only a single normal
...
Fixes a large number of effects in Rogue Squadron 2 and 3.
2022-04-22 16:54:38 -07:00
Pokechu22
39b2854b98
VertexLoader: Convert count register to remaining register
...
This more accurately represents what's going on, and also ends at 0 instead of 1, making some indexing operations easier. This also changes it so that position_matrix_index_cache actually starts from index 0 instead of index 1.
2022-04-22 16:54:38 -07:00
Pokechu22
97d0ff58c8
Convert vertex loader position cache to std::array
2022-04-22 16:54:38 -07:00
Pokechu22
f722bdf7f1
VertexLoaderX64: Refactor so that zfreeze is only in one place
...
(Specifically, the copy for VertexLoaderManager::position_cache. The position matrix index happens elsewhere, and the float path still has special logic to copy to scratch3.)
2022-04-22 16:54:38 -07:00
Pokechu22
6f1350ae51
VertexLoaderARM64: Fix z-freeze position matrix index
...
Before, it would always write to index 0 (which is unused). Now it writes to the correct index.
2022-04-22 16:54:38 -07:00
Pokechu22
04fdadd9d5
VideoCommon: Rename norm0/norm1/norm2 to normal/tangent/binormal
2022-04-22 16:54:36 -07:00
Pokechu22
88134a6786
VertexShaderGen: Simplify normal calculation
...
This is a readability change; there should be no functional or performance differences.
2022-04-22 16:51:58 -07:00
OatmealDome
259a5fc7c0
DriverDetails: Add broken discard with early-Z bug on Apple Silicon GPUs
2022-04-20 14:56:34 -04:00
OatmealDome
e7f5e5172c
DriverDetails: Introduce new VENDOR_APPLE for Apple GPUs
2022-04-19 10:55:27 -04:00
OatmealDome
80dfefb32e
UberShaderPixel: Add support for non-dual source shader blending
2022-04-19 10:55:26 -04:00
OatmealDome
c1d87db6fa
PixelShaderGen: Add support for non-dual source shader blending
2022-04-19 10:55:26 -04:00
Admiral H. Curtiss
ef760ee012
Common/PointerWrap: Prevent reads/writes past the end of the buffer.
2022-04-18 23:48:00 +02:00
Admiral H. Curtiss
853cf4f818
Common/PointerWrap: Hide internals.
2022-04-18 03:41:14 +02:00
Pokechu22
f3eff70e2f
Implement ImGui window for scissor rectangles
...
This is mainly for debugging, and is only exposed by manually editing the configuration.
2022-04-16 12:35:00 -07:00
Pokechu22
076392a0f6
VideoCommon: Rework scissor handling
...
This increases accuracy, fixing the white rendering in Major Minor's Majestic March. However, the hardware backends can only have one viewport and scissor rectangle at a time, while sometimes multiple are needed to accurately emulate what is happening. If possible, this will need to be fixed later.
2022-04-16 10:26:11 -07:00
Pokechu22
4595b89ad8
VideoCommon: Remove bSupportsOversizedViewports
...
I think this is a relic of D3D9. D3D11 and D3D12 seem to work fine without it. Plus, ViewportCorrectionMatrix just didn't work correctly (at least with the viewports being generated by the new scissor code).
2022-04-16 10:26:11 -07:00
Pokechu22
b85b35d5ea
VideoCommon: Create dedicated structs for scissor pos/offset
2022-04-16 10:26:10 -07:00
Scott Mansell
c5c4169bc8
Merge pull request #10255 from Pokechu22/sw-zfreeze
...
Software: Fix zfreeze with CullMode::All
2022-04-15 11:12:49 +12:00
JosJuice
abffa93a72
MoltenVK: Fix pixel shader typo
2022-04-10 20:51:20 +02:00
Mai M
e932a1bfb7
Merge pull request #10571 from AdmiralCurtiss/ffmpeg-custom-pix-fmt
...
VideoCommon/FrameDump: Allow user to specify a pixel format.
2022-04-09 14:19:39 -04:00
Pokechu22
59f299d5d6
Software: Fix zfreeze with CullMode::All
2022-04-08 20:05:32 -07:00
Pokechu22
3a742e99bb
Software: Remove config to disable ZComploc and ZFreeze
...
These aren't particularly useful, and make the code a bit more confusing. If for some reason someone wants to test what happens when these functions are disabled, it's easier to just edit the code that implements them. They aren't exposed in the UI, so one would need to restart Dolphin to do it anyways.
2022-04-08 20:05:32 -07:00
Pokechu22
4e9a314776
Round viewport coordinates when vertex rounding is enabled
...
This should fix https://bugs.dolphin-emu.org/issues/9105
2022-04-08 18:30:59 -07:00
Pokechu22
dbb857b175
VertexShaderManager: Use g_ActiveConfig.UseVertexRounding()
2022-04-08 18:30:59 -07:00
Pokechu22
f6ab317374
Fix typo (GFX_HACK_VERTEX_ROUDING -> GFX_HACK_VERTEX_ROUNDING)
2022-04-08 18:30:59 -07:00
Admiral H. Curtiss
df214af8a1
VideoCommon/FrameDump: Fix log messages with arguments.
2022-04-09 01:42:02 +02:00
Admiral H. Curtiss
3382408b8e
VideoCommon/FrameDump: Allow user to specify a pixel format.
2022-04-09 00:45:49 +02:00
JMC47
e02194057b
Merge pull request #10412 from Pokechu22/sw-efb-peek-alpha
...
Software: Implement pixel engine alpha read mode
2022-04-07 17:01:56 -04:00
JosJuice
7a33659e7b
Merge pull request #10485 from JosJuice/real-ocol0-logic-ops
...
Shadergen: Use real_ocol0 workaround for shader logic ops
2022-04-07 21:00:24 +02:00
Shawn Hoffman
4fad2c26e4
framedump: enable compat with utvideo codec
2022-03-29 17:27:59 -07:00
Shawn Hoffman
decaea8f9b
FrameDump: improve debug logging
2022-03-29 17:27:59 -07:00
Shawn Hoffman
09432ef098
windows: move ffmpeg bins to submodule
...
udpate ffmpeg to b1cbeabf5e4b3234e895a58bafa371bfb792baf0
enable ffmpeg on arm64
2022-03-29 17:27:46 -07:00
Pokechu22
8882eb040a
PixelEngine: Convert to BitField and enum class
2022-03-29 15:34:43 -07:00
Pokechu22
45b8ebeb25
PixelEngine: Remove old comment
...
This comment was added in 76d24f2c0d
(the link was updated in 5799824b22
, but both are dead now). An archived version is at https://web.archive.org/web/20090830050441/http://developer.nvidia.com/object/General_FAQ.html#t6 but it's about the number of available texture units, which doesn't seem relevant to PixelEngine.
2022-03-29 15:34:43 -07:00
Pokechu22
30a34d06c1
RenderBase: Add call to IMGUI_CHECKVERSION()
2022-03-25 10:24:07 -07:00
JosJuice
f1f02180fa
VideoCommon: Remove redundant in qualifiers
...
ANGLE raises a compilation error otherwise.
2022-03-21 22:16:25 +01:00
JosJuice
bbb64ff993
Shadergen: Use real_ocol0 workaround for shader logic ops
...
Previously we were using this workaround when using framebuffer fetch
to emulate dual source blending, but it seems like we also need to use
it when using framebuffer fetch to emulate logic ops, otherwise some
Adreno devices get a crash when compiling OpenGL ES ubershaders.
Using the workaround in specialized shaders doesn't seem to be
necessary, but I've made the same change there for consistency.
This gets us closer to fixing https://bugs.dolphin-emu.org/issues/12791
but doesn't actually fix it.
2022-02-28 18:32:19 +01:00
JMC47
f65dc6d525
Merge pull request #10441 from OatmealDome/improved-logic-op-workaround
...
BlendingState: Set source and destination alpha factors in logic op workaround
2022-02-28 12:17:25 -05:00
JosJuice
608799f1e4
PixelShaderGen: Check uid_data for use_shader_logic_op
...
On devices which have hardware support for dual source blending
but not logic ops, this lets us skip performing the framebuffer
fetch in situations where the game isn't actually using logic ops.
2022-02-28 00:04:31 +01:00
Pokechu22
23cbd570a1
FramebufferManager: Flush pending EFB pokes in PopulateEFBCache
...
I.e. flush pokes before running an EFB peek, if the cache tile isn't present. If the cache tile is present, then EFB pokes should have been written to the cache tile and thus don't need to be flushed.
2022-02-21 13:23:22 -08:00
Léo Lam
eb98bcd2ae
Merge pull request #10455 from Pokechu22/directly-map-fifo-breakpoint
...
CommandProcessor: Add FIFO_BP_LO/HI to directly_mapped_vars
2022-02-18 18:54:06 +01:00
Léo Lam
fa059b20ba
Merge pull request #10460 from Dentomologist/convert_option_type_to_enum_class
...
VideoCommon: Convert OptionType to enum class
2022-02-18 18:40:59 +01:00
Léo Lam
067fbe8f86
Merge pull request #10376 from shuffle2/uidctor
...
GXPipelineUid: remove explicit shallow copy where it's the default
2022-02-18 18:39:59 +01:00