liamwhite
3e33a878dc
Merge pull request #9536 from liamwhite/debug-utils
...
vulkan_common: unify VK_EXT_debug_utils and selection of validation layer
2023-01-05 18:31:45 -05:00
Billy Laws
58fec43768
Run clang-format
2023-01-05 22:18:10 +00:00
Billy Laws
6c812a0c84
Vulkan, OpenGL: Hook up geometry shader passthrough emulation
2023-01-05 22:13:07 +00:00
Billy Laws
9e2997c4b6
Vulkan, OpenGL: Hook up storage buffer alignment code
2023-01-05 22:13:07 +00:00
Billy Laws
bbfad79c89
Vulkan: Add a workaround for input_position on Adreno drivers
...
Adreno drivers will crash compiling geometry shaders if the input position is not wrapped in a gl_in struct.
2023-01-05 22:13:07 +00:00
Wollnashorn
e07976a22b
video_core/vulkan: Vulkan driver pipelines now contain cache version
...
So that old cache can get deleted when the cache version changes and does not grow infinitely
2023-01-05 21:03:01 +01:00
Wollnashorn
f2aa816679
video_core/vulkan: Added check if Vulkan pipeline path has been set
2023-01-05 21:03:01 +01:00
Wollnashorn
16809c1fa7
video_core/vulkan: Added VkPipelineCache
to store Vulkan pipelines
...
As an optional feature which can be enabled in the advanced graphics configuration, all pipelines that get built at the initial shader loading are stored in a VkPipelineCache object and are dumped to the disk.
These vendor specific pipeline cache files are located at `/shader/GAME_ID/vulkan_pipelines.bin`. This feature was mainly added because of an issue with the AMD driver (see yuzu-emu#8507) causing invalidation of the cache files the driver builds automatically.
2023-01-05 21:02:44 +01:00
Fernando Sahmkow
b56ad93bbc
BufferBase: Don't ignore GPU pages.
2023-01-05 14:00:10 -05:00
Fernando Sahmkow
2d0c4f2b1d
Fermi2D: sync cache flushes
2023-01-05 06:43:28 -05:00
Fernando Sahmkow
af5ecb0b15
MemoryManager: use fastmem directly.
2023-01-05 06:06:33 -05:00
Fernando Sahmkow
6c7eb81f7d
video_core: Cache GPU internal writes.
2023-01-05 05:23:39 -05:00
Fernando Sahmkow
4d9af4a9d2
Vulkan: Fix drivers that don't support dynamic_state_2 up
2023-01-05 00:11:16 -05:00
Feng Chen
013b689153
video_core: Implement opengl/vulkan draw_texture
2023-01-05 12:41:33 +08:00
Feng Chen
1e8cee2ddf
video_core: Implement maxwell3d draw texture method
2023-01-05 12:41:28 +08:00
Liam
a4269c285a
common: add setting for renderer clock workaround
2023-01-04 22:22:01 -05:00
Liam
301e9bbc03
vulkan: implement 'turbo mode' clock booster
2023-01-04 22:22:01 -05:00
Liam
66ae79de13
renderer_vulkan: implement fallback path for null descriptors
2023-01-04 22:14:01 -05:00
Fernando Sahmkow
3ecc03ec1b
yuzu-ui: Add setting for disabling macro HLE
2023-01-04 14:56:52 -05:00
Fernando Sahmkow
a0c697124c
Video_core: Address feedback
2023-01-04 14:39:42 -05:00
Fernando Sahmkow
03ccd8bf43
Texture Cache: Implement async texture downloads.
2023-01-03 22:52:15 -05:00
Fernando Sahmkow
ddbf851ef6
Vulkan: Update blacklisting to latest driver versions.
2023-01-03 21:16:43 -05:00
Fernando Sahmkow
a045e860dd
ShaderCompiler: Inline driver specific constants.
2023-01-03 16:29:25 -05:00
Fernando Sahmkow
b62ffb612d
Vulkan: rework stencil tracking.
2023-01-03 16:29:16 -05:00
Liam
f9c6d39a6c
vulkan_common: blacklist radv from extended_dynamic_state2 on drivers before 22.3.1
2023-01-01 16:43:58 -05:00
Liam
4814d87385
video_core: fix build
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
d09aa0182f
MacroHLE: Final cleanup and fixes.
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
581a7d785b
Rasterizer: Setup skeleton for Host Conditional rendering
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
3630bfaef3
RasterizerMemory: Add filtering for flushing/invalidation operations.
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
2793304117
Vulkan: Allow stagging buffer deferrals.
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
8d694701bc
MacroHLE: Add OpenGL Support
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
4c82e47edd
Vulkan: Add other additional pipeline specs
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
d33251db93
Vulkan: Implement Dynamic State 3
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
f800e485c9
Vulkan Implement Dynamic State 2 LogicOp and PatchVertices
2023-01-01 16:43:58 -05:00
Fernando Sahmkow
c897c55e3c
Vulkan: Implement Dynamic States 2
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
cb1497d0d7
DMAPusher: Improve collection of non executing methods
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
ce448ce770
Revert Buffer cache changes and setup additional macros.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
18637766ef
MacroHLE: Reduce massive calculations on sizing estimation.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
aad0cbf024
MacroHLE: Add HLE replacement for base vertex and base instance.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
93ac5a6a6d
MacroHLE: Add Index Buffer size estimation.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
c541559767
MacroHLE: Refactor MacroHLE system.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
0f89828073
MacroHLE: Implement DrawIndexedIndirect & DrawArraysIndirect.
2023-01-01 16:43:57 -05:00
Fernando Sahmkow
a5a94f52ff
MacroHLE: Add MultidrawIndirect HLE Macro.
2023-01-01 16:43:57 -05:00
Liam
aa13ee5c4a
vulkan_common: unify VK_EXT_debug_utils and selection of validation layer
2023-01-01 11:59:47 -05:00
liamwhite
9fdacb5e3a
Merge pull request #9423 from vonchenplus/vulkan_quad_strip
...
video_core: Implement all vulkan topology
2022-12-28 20:59:23 -05:00
FengChen
6a397bc8ed
video_core: Implement other missing vulkan topology
2022-12-26 12:20:49 +08:00
FengChen
86d5b4e556
video_core: Implement vulkan QuadStrip topology
2022-12-26 11:37:34 +08:00
ameerj
7584d36922
texture_cache: Use Common::ScratchBuffer for swizzle buffers
2022-12-25 15:47:41 -05:00
ameerj
1209d428f1
texture_cache: Use pre-allocated buffer for texture downloads
2022-12-25 15:38:36 -05:00
ameerj
c448b3af2f
texture_cache: Use pre-allocated buffer for texture uploads
2022-12-25 15:38:36 -05:00
Fernando S
3e6850f00b
Merge pull request #9453 from ameerj/scratch-vector
...
common: Add ScratchBuffer Class
2022-12-24 20:26:06 -05:00
ameerj
c6590ad07b
scratch_buffer: Explicitly defing resize and resize_destructive functions
...
resize keeps previous data intact when the buffer grows
resize_destructive destroys the previous data when the buffer grows
2022-12-19 22:40:50 -05:00
ameerj
61e4f2d931
dma_pusher: Rework command_headers usage
...
Uses ScratchBuffer and avoids overwriting the command_headers buffer with the prefetch_command_list
2022-12-19 18:08:04 -05:00
ameerj
bdef22ff85
buffer_cache: Use Common::ScratchBuffer for ImmediateBuffer usage
2022-12-19 18:08:04 -05:00
ameerj
4bc2d82130
video_core: Add usages of ScratchBuffer
2022-12-19 18:08:04 -05:00
Jan Beich
b60a93a936
externals: update Vulkan-Headers to v1.3.238
2022-12-19 17:14:29 +00:00
liamwhite
5da72a891f
Merge pull request #7450 from FernandoS27/ndc-vulkan
...
Vulkan: Add support for VK_EXT_depth_clip_control.
2022-12-17 16:08:10 -05:00
Kelebek1
f7d95d0a3a
Remove unimplemented transform feedback geometry spam, it should be implemented
2022-12-16 22:52:29 +00:00
Narr the Reg
9ff891ce71
Merge pull request #9431 from liamwhite/sixty-five-oh-two
...
vulkan_common: declare storageBuffer8BitAccess
2022-12-15 17:52:16 -06:00
liamwhite
3ff7a5de1a
Merge pull request #7410 from Nefsen402/wayland-fixes
...
Wayland fixes
2022-12-15 12:05:01 -05:00
FernandoS27
0104e28fe4
Vulkan: Add support for VK_EXT_depth_clip_control.
2022-12-13 21:39:18 -05:00
Liam
4fce72c902
vulkan_common: declare storageBuffer8BitAccess
2022-12-13 18:28:50 -05:00
Alexander Orzechowski
09e3029c11
gl_device: Use a more robust way to use strict context mode
...
Instead of checking a environment variable which may not actually
exist or is just wrong, ask QT if it's running on the wayland
platform.
2022-12-13 15:01:51 -05:00
Alexander Orzechowski
3cc3176ad6
video_core/vulkan: Explicity check swapchain size when deciding to recreate
...
Vulkan for whatever reason does not return VK_ERROR_OUT_OF_DATE_KHR when
the swapchain is the wrong size. Explicity make sure the size is indeed
up to date to workaround this.
2022-12-13 13:23:35 -05:00
Liam
d5f53da79d
renderer_opengl: refactor context acquire
2022-12-13 13:23:23 -05:00
yzct12345
f6868ae4dd
Fix validation errors on less compatible Intel GPU
2022-12-12 20:53:05 -05:00
bunnei
da58eb6208
Merge pull request #9406 from vonchenplus/topology
...
video_core: Adjust topology update logic and Adjust Clear Manage
2022-12-12 14:37:06 -08:00
Mai
8ef9075b1b
Merge pull request #9420 from liamwhite/aniso
...
video_core: fix off by one in anisotropic filtering amount
2022-12-12 03:34:09 +00:00
Matías Locatti
623429a27e
Merge pull request #9409 from liamwhite/smaa2
...
video_core: Integrate SMAA
2022-12-11 01:38:28 -03:00
Liam
456322dde6
video_core: fix off by one in anisotropic filtering amount
2022-12-10 20:54:45 -05:00
Salvage
0e265db873
Fix compilation error
2022-12-09 14:49:15 +01:00
Liam
5b837157bd
video_core: Integrate SMAA
...
Co-authored-by: goldenx86 <goldenx86@users.noreply.github.com>
Co-authored-by: BreadFish64 <breadfish64@users.noreply.github.com>
2022-12-08 17:17:45 -05:00
FengChen
37014e9127
video_core: Add vertex_array_instance_* sbubbed called warning
2022-12-08 23:19:31 +08:00
FengChen
1e64b5e2ec
video_core: The draw manager manages whether Clear is required.
2022-12-08 23:10:52 +08:00
FengChen
15d63c3d3d
video_core: Adjust topology update logic
2022-12-08 22:40:28 +08:00
Fernando S
41461514d6
Merge pull request #9401 from vonchenplus/draw_manager
...
video_core: Implement maxwell3d draw manager and split draw logic
2022-12-08 12:41:39 +01:00
Feng Chen
bf0b957c05
video_core: Implement maxwell3d draw manager and split draw logic
2022-12-08 10:12:19 +08:00
Morph
bfdd512787
Merge pull request #9365 from liamwhite/val
...
vulkan_common: quiet some validation errors
2022-12-06 21:08:14 -05:00
Fernando S
08d4e7c7af
Merge pull request #9393 from liamwhite/more-vulkan
...
vulkan_common: further initialization tweaks
2022-12-06 17:45:08 +01:00
liamwhite
90145c424d
Merge pull request #9360 from Kelebek1/R-E-S-P-E-C-T
...
Respect render mode override
2022-12-05 22:17:22 -05:00
Liam
7e7a23363a
vulkan_common: further initialization tweaks
2022-12-05 22:06:35 -05:00
liamwhite
3b19f741bd
Merge pull request #6833 from abouvier/unbundle
...
cmake: prefer system libraries
2022-12-05 12:26:09 -05:00
Fernando Sahmkow
6352c5dc31
Vulkan: Implement Alpha coverage
2022-12-05 12:33:12 +01:00
Alexandre Bouvier
8e17b5469f
cmake: prefer system libraries
2022-12-04 17:09:25 +01:00
Liam
157981cac5
vulkan_common: add feature test for shaderDrawParameters
2022-12-04 10:55:13 -05:00
Liam
18831e0933
vulkan_common: clean up extension usage
2022-12-04 10:55:13 -05:00
Liam
ea56d8f388
vulkan_common: correct usage of timeline semaphore fallbacks
2022-12-04 10:55:13 -05:00
Liam
f23f875dd8
vulkan_common: ensure all mandatory features are tested in feature report
2022-12-04 10:55:13 -05:00
Liam
06a67d2bbd
vulkan_common: unsuffix 16-bit storage feature test structure
2022-12-04 10:55:13 -05:00
Liam
bbc1809951
vulkan_common: unsuffix timeline semaphore feature test structure
2022-12-04 10:55:13 -05:00
Liam
a9633ba8b2
vulkan_common: add logicOp to feature report
2022-12-04 10:55:13 -05:00
Liam
7fc6514be1
vulkan_common: promote host query reset usage to core
2022-12-04 10:55:13 -05:00
Liam
e44a804ec7
vulkan_common: promote descriptor update template usage to core
2022-12-04 10:55:13 -05:00
Liam
a948ab3e48
vulkan_common: promote timeline semaphore usage to core
2022-12-04 10:55:13 -05:00
liamwhite
02b10a6e4d
Merge pull request #9374 from liamwhite/externals
...
externals: update dynarmic, SDL2
2022-12-04 10:44:12 -05:00
Liam
6d2c597371
externals: update dynarmic, SDL2
2022-12-04 10:12:26 -05:00
bunnei
f77cc6c412
Merge pull request #9344 from liamwhite/null
...
video_core: add null backend
2022-12-03 11:23:25 -08:00
liamwhite
75e16547f8
Merge pull request #9300 from ameerj/pch
...
CMake: Use precompiled headers to improve compile times
2022-12-03 14:10:06 -05:00
liamwhite
22aff09b33
Merge pull request #9289 from liamwhite/fruit-company
...
general: fix compile for Apple Clang
2022-12-03 12:09:21 -05:00
liamwhite
ac0721a4bc
Merge pull request #9353 from vonchenplus/draw_indexed
...
video_core: Fine tuning the index drawing judgment logic
2022-12-03 10:43:34 -05:00
Matías Locatti
c043ba8467
Merge pull request #9303 from liamwhite/new-vulkan-init
...
Vulkan: update initialization
2022-12-02 18:32:54 -03:00
Liam
3ef006b5ab
shader_recompiler: add gl_Layer translation GS for older hardware
2022-12-01 09:51:27 -05:00
Feng Chen
cb5400b34d
video_core: Fine tuning the index drawing judgment logic
2022-12-01 19:14:58 +08:00
Liam
be05cb640c
vulkan_common: quiet some validation errors
2022-11-30 19:18:05 -05:00
ameerj
5b5612c1cc
CMake: Consolidate common PCH headers
2022-11-30 18:30:30 -05:00
Kelebek1
a78372110c
Respect render mode override
2022-11-30 01:43:36 +00:00
ameerj
37bc5118ea
CMake: Use precompiled headers
2022-11-29 18:50:49 -05:00
liamwhite
c845d8a9e8
Merge pull request #9352 from lioncash/vidcast
...
engines: Remove unnecessary casts
2022-11-29 18:45:16 -05:00
Lioncash
b6d93b2c77
host1x/syncpoint_manager: Eliminate unnecessary std::function construction
...
We can just pass the function object through, and if it's a valid
function, then it will automatically be converted.
2022-11-29 08:58:50 -05:00
Lioncash
c4af7b3f5c
host1x/syncpoint_manager: Pass DeregisterAction() handle as const-ref
...
The handle is only compared against and not modified in any way, so we
can pass it by const reference.
This also allows us to mark the respective parameters for
DeregisterGuestAction() and DeregisterHostAction() as const references
as well.
2022-11-29 08:55:33 -05:00
Lioncash
96ffc174aa
maxwell_3d: Mark shifted value as unsigned
...
Otherwise this is technically creating a signed int result that gets
converted. Just a consistency change.
While we're in the area, we can mark Samples() as const.
2022-11-29 08:39:33 -05:00
Lioncash
d7ec031419
engines: Remove unnecessary casts
...
In a few cases we have some casts that can be trivially removed.
2022-11-29 08:38:46 -05:00
Lioncash
a9efea8ae9
video_core/surface: Eliminate casts in GetFormatType()
...
We can just compare directly and get rid of verbose casting.
2022-11-28 20:25:44 -05:00
Liam
89dd7dc180
video_core: add null backend
2022-11-28 19:49:09 -05:00
Liam
2956a33463
Vulkan: update initialization
...
Co-authored-by: bylaws <bylaws@users.noreply.github.com>
2022-11-27 14:58:28 -05:00
bunnei
3ab8d9ac7c
Merge pull request #9276 from goldenx86/fsrSlider
...
FSR Sharpening Slider
2022-11-27 00:13:15 -08:00
liamwhite
3e53d8138c
Merge pull request #9288 from vonchenplus/deferred_draw
...
video_core: Fine tune maxwell drawing trigger mechanism
2022-11-26 09:35:45 -05:00
liamwhite
ddca512f3f
Merge pull request #9307 from Morph1984/not-used-correctly
...
maxwell_to_vk: Fix format usage bits and add R16_SINT
2022-11-26 09:08:55 -05:00
liamwhite
20b62dbd30
Merge pull request #9194 from FernandoS27/yfc-fermi2d
...
YFC - Fermi2D: Rework blit engine and add a software blitter.
2022-11-24 21:48:41 -05:00
Fernando Sahmkow
826e0785bf
Fermi2D: Cleanup and address feedback.
2022-11-24 21:00:48 +01:00
Fernando Sahmkow
3b582d5fb2
GPU: Fix buffer cache issue, engine upload not inlining memory in multiline and pessismistic invalidation.
2022-11-24 20:57:16 +01:00
Fernando Sahmkow
7356ab1de6
GPU: Implement additional render target formats.
2022-11-24 20:35:44 +01:00
Fernando Sahmkow
daf2ef8f1c
MaxwellDMA: Implement BlockLinear to BlockLinear copies.
2022-11-24 20:35:44 +01:00
Fernando Sahmkow
5fbd6954ef
Fermi2D: Implement Bilinear software filtering and address feedback.
2022-11-24 20:35:44 +01:00
Fernando Sahmkow
957840be91
Fermi2D: Rework blit engine and add a software blitter.
2022-11-24 20:35:44 +01:00
Matías Locatti
f209e976f4
FSR Sharpening Slider part 1 - only a global slider
2022-11-24 04:22:13 -05:00
Morph
852de7a771
maxwell_to_vk: Add R16_SINT
...
This was somehow missed when the format was added to GL
2022-11-23 21:30:58 -05:00
Morph
ca154d466a
maxwell_to_vk: Fix format usage bits
...
- VK_FORMAT_B8G8R8A8_UNORM supports the STORAGE_IMAGE_BIT
- VK_FORMAT_R4G4B4A4_UNORM_PACK16 does not support the COLOR_ATTACHMENT_BIT
2022-11-23 21:29:43 -05:00
Liam
9737615948
general: fix compile for Apple Clang
2022-11-22 22:22:28 -05:00
FengChen
1d57851fc7
video_core: Optimize maxwell drawing trigger mechanism
2022-11-22 17:53:26 +08:00
liamwhite
7f1c6def1f
Merge pull request #9216 from vonchenplus/reimp_inline_index_buffer
...
video_core: Reimplement inline index buffer binding
2022-11-20 12:08:08 -05:00
Morph
69c92b8156
Merge pull request #9249 from goldenx86/available-vram
...
Add available Vulkan VRAM to log files
2022-11-20 00:21:29 -05:00
bunnei
4975f60162
Merge pull request #9252 from liamwhite/radv-superiority
...
maxwell3d: HLE multi-layer clear macro
2022-11-19 01:46:48 -08:00
Morph
e5a446a0df
Merge pull request #9229 from Docteh/achy_breaky_heart
...
Add break for default cases
2022-11-17 19:20:18 -05:00
Liam
4c42655a2d
maxwell3d: full HLE for multi-layer clears
2022-11-17 08:31:43 -05:00
Liam
ece0c1095d
maxwell3d: HLE multi-layer clear macro
2022-11-16 22:28:58 -05:00
Matías Locatti
7c50a916c7
Update renderer_vulkan.cpp
2022-11-16 05:53:42 -03:00
Feng Chen
cb971ad654
video_core: Reimplement inline index buffer binding
2022-11-15 12:10:44 +08:00
Kyle Kienapfel
6fa3faec65
Add break for default cases
...
Visual Studio has an option to search all files in a solution, so I
did a search in there for "default:" looking for any missing break
statements.
I've left out default statements that return something, and that throw
something, even if via ThrowInvalidType. UNREACHABLE leads towards throw
R_THROW macro leads towards a return
2022-11-13 16:30:55 -08:00
bunnei
08091ff3e3
Merge pull request #9226 from Kelebek1/regs_regression
...
[video_core] Fix a couple regs regressions
2022-11-12 02:27:06 -08:00
liamwhite
e4d55e4ee4
Merge pull request #9204 from vonchenplus/dma_copy_1d_random_crash
...
video_core: Fix dma copy 1D random crash
2022-11-11 17:56:41 -05:00
liamwhite
c973029374
Merge pull request #9167 from vonchenplus/tess
...
video_core: Fix few issues in Tess stage
2022-11-11 08:03:40 -05:00
Kelebek1
33ea0fdfe8
Fix regs regression with OpenGL two-sided stencil, and re-add data invalidation reg
2022-11-11 04:04:36 +00:00
Morph
c9bb888adf
ir/texture_pass: Use host_info instead of querying Settings::values ( #9176 )
2022-11-11 03:32:53 +01:00
FengChen
d03afd6f4b
video_core: Fix dma copy 1D random crash
2022-11-11 00:23:45 +08:00
Liam
cbaf642ffe
Initial ARM64 support
2022-11-09 16:58:49 -05:00
FengChen
a4472b5526
video_core: Fix few issues in Tess stage
2022-11-07 15:42:42 +08:00
FengChen
aa97f39ba8
video_core:Fix vmm kinds size error
2022-11-06 22:31:22 +08:00
Fernando S
df38c03a09
Merge pull request #9163 from vonchenplus/draw_error
...
video_core: Fix drawing trigger mechanism regression
2022-11-06 01:13:59 +01:00
Morph
8baf036cdc
Merge pull request #9189 from vonchenplus/stupid
...
video_core: Fix scaling graphical regressions for multiple games
2022-11-05 11:57:52 -04:00