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
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
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
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
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
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
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
aad0cbf024
MacroHLE: Add HLE replacement for base vertex and base instance.
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
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
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
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
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
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
1e64b5e2ec
video_core: The draw manager manages whether Clear is required.
2022-12-08 23:10:52 +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
Fernando Sahmkow
6352c5dc31
Vulkan: Implement Alpha coverage
2022-12-05 12:33:12 +01:00
Liam
18831e0933
vulkan_common: clean up extension usage
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
liamwhite
22aff09b33
Merge pull request #9289 from liamwhite/fruit-company
...
general: fix compile for Apple Clang
2022-12-03 12:09:21 -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
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
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
Fernando Sahmkow
7356ab1de6
GPU: Implement additional render target formats.
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
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
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
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
a4472b5526
video_core: Fix few issues in Tess stage
2022-11-07 15:42:42 +08: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
FengChen
7283010305
video_core: Fix scaling graphical regressions for multiple games
2022-11-05 17:21:02 +08:00
gidoly
9fc1bcc7b2
Update shader cache version. ( #9175 )
2022-11-04 03:16:01 -04:00
Feng Chen
75596c07e0
video_core: Fix SNORM texture buffer emulating error ( #9001 )
2022-11-04 02:39:42 -04:00
bunnei
38e4382f53
Merge pull request #8858 from vonchenplus/mipmap
...
video_core: Generate mipmap texture by drawing
2022-11-03 22:21:58 -07:00
Fernando S
3794851f7f
Merge pull request #9154 from liamwhite/new-fb
...
vk_blit_screen: recreate swapchain images on guest format change
2022-11-04 01:25:34 +01:00
Morph
74275d0968
Merge pull request #9097 from liamwhite/intel-spv-compiler
...
video_core: don't build ASTC decoder shader unless requested
2022-11-03 19:29:33 -04:00
liamwhite
de4afde065
Merge pull request #9143 from K0bin/scheduler-empty
...
vk_scheduler: Remove recorded_counts
2022-10-31 21:37:46 -04:00
Fernando Sahmkow
67e0d38152
Vulkan: Fix regression caused by limiting render area to width/height of rendef targets.
2022-10-30 21:24:28 +01:00
Liam
808e22984f
vk_blit_screen: recreate swapchain images on guest format change
2022-10-30 15:04:16 -04:00
Robin Kertels
dce242858a
vk_scheduler: Remove recorded_counts
2022-10-28 03:42:43 +02:00
FengChen
0ec1801bc1
video_core: Catch vulkan clear op not all channel need clear
2022-10-25 22:39:29 +08:00
liamwhite
fa913a702f
Merge pull request #9112 from vonchenplus/deferred_draw
...
video_core: Reimplementing the maxwell drawing trigger mechanism
2022-10-25 09:42:59 -04:00
bunnei
cbb6c24215
Merge pull request #8873 from vonchenplus/fix_legacy_location_error
...
video_core: Fix legacy to generic location unpaired
2022-10-24 10:50:24 -07:00
FengChen
2f90694797
video_core: Implement maxwell inline_index method
2022-10-22 16:58:23 +08:00
FengChen
1f54cd4ac7
video_coare: Reimplementing the maxwell drawing trigger mechanism
2022-10-21 17:09:22 +08:00
Liam
9524e28d20
video_core: don't build ASTC decoder shader unless requested
2022-10-19 18:52:42 -04:00
bunnei
d00245d444
video_core: renderer_vulkan: vk_query_cache: Avoid shutdown crash in QueryPool::Reserve.
2022-10-18 19:13:35 -07:00
Morph
d3114c620d
renderer_(opengl/vulkan): Fix tessellation clockwise parameter
...
This should be assigned CW only on Triangles_CW rather than not Triangles_CCW, making CCW the default winding order rather than CW.
2022-10-13 15:52:56 -04:00
bunnei
dbacb31f61
Merge pull request #9027 from yuzu-emu/revert-8987-another-name-for-reinforcement-steel
...
Revert "vulkan: automatically use larger staging buffer sizes when possible"
2022-10-12 15:36:56 -07:00
Kelebek1
4496030ea9
Fix stencil func registers, make clip control equivalent to how it was before, but surely wrong.
2022-10-10 20:59:57 +01:00
Fernando S
55e6d0dae0
Merge pull request #8766 from Kelebek1/regs
...
[video_core] Update 3D registers
2022-10-09 07:04:03 +02:00
Mai
155213484b
Merge pull request #9016 from liamwhite/drunken-schedule
...
vk_scheduler: wait for command processing to complete
2022-10-07 20:27:16 -04:00
Kelebek1
752659aef3
Update 3D regs
2022-10-07 14:13:45 +01:00
liamwhite
20cf09471a
Revert "vulkan: automatically use larger staging buffer sizes when possible"
2022-10-07 04:49:08 -04:00
Byte
df6dffa30b
vulkan_blitter: Fix pool allocation double free.
2022-10-06 21:00:54 +02:00
Liam
0d99b7962d
state_tracker: workaround channel setup for homebrew
2022-10-06 21:00:54 +02:00
Fernando Sahmkow
c2b7de66b3
Address Feedback from bylaws.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
fe24c65153
General: Fix clang format.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
cdce7f781b
Vulkan Swapchain: Overall improvements.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
ada09778d9
Vulkan Texture Cache: Limit render area to the max width/height of the targets.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
fd7afda1e8
VideoCore: Implement formats needed for N64 emulation.
2022-10-06 21:00:53 +02:00
bunnei
f5fd6b5c86
DMA & InlineToMemory Engines Rework.
2022-10-06 21:00:53 +02:00
Fernando Sahmkow
ba34cf0a69
Shader Decompiler: Check for shift when deriving composite samplers.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
bc8b3d225e
VideoCore: Refactor fencing system.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
98b5e236d4
Vulkan: Fix Scissor on Clears
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
920429fde7
NVDRV: Further refactors and eliminate old code.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
f350c3d74e
Texture cache: Fix the remaining issues with memory mnagement and unmapping.
2022-10-06 21:00:52 +02:00
Fernando Sahmkow
3f8e7a5585
VideoCore: Fix channels with disk pipeline/shader cache.
2022-10-06 21:00:51 +02:00
Fernando Sahmkow
d7990c159e
OpenGl: Implement Channels.
2022-10-06 21:00:51 +02:00
Fernando Sahmkow
139ea93512
VideoCore: implement channels on gpu caches.
2022-10-06 21:00:51 +02:00
Fernando Sahmkow
1a49991676
Texture Cache: Add ASTC 10x5 Format.
2022-10-06 16:45:40 +02:00
bunnei
d55096ce85
Merge pull request #9013 from liamwhite/spinning-a-yarn
...
common: remove "yuzu:" prefix from thread names
2022-10-05 18:53:42 -07:00
Liam
7969d4d5de
vk_scheduler: wait for command processing to complete
2022-10-03 20:03:25 -04:00
Liam
35d3e7db2a
common: remove "yuzu:" prefix from thread names
2022-10-03 18:43:56 -04:00
Liam
087c6c2ef1
vulkan: automatically use larger staging buffer sizes when possible
2022-09-25 02:28:03 -04:00
FengChen
d4cb0eac87
video_core: Fix legacy to generic location unpaired
2022-09-20 12:03:31 +08:00
Feng Chen
c864cb5772
Merge branch 'master' into mipmap
2022-09-20 11:56:43 +08:00
FengChen
9a95c7fa14
video_core: Generate mipmap texture by drawing
2022-09-20 11:55:43 +08:00
Morph
7e379207ec
(shader/pipeline)_cache: Raise shader/pipeline cache version
...
Since the following commit: a83a5d2e4c
, many games will refuse to boot unless the shader/pipeline cache has been invalidated.
2022-08-31 08:39:37 -04:00
Fernando S
a83a5d2e4c
Merge pull request #8752 from vonchenplus/rectangle_texture
...
video_code: support rectangle texture
2022-08-31 10:40:45 +02:00
FengChen
b2a6dde438
video_code: support rectangle texture
2022-08-25 12:45:58 +08:00
Narr the Reg
0c8aeb09d2
video_core: vulkan: rasterizer: Workaround on viewport swizzle on AMD
2022-08-23 18:38:34 -05:00
vonchenplus
0a8c5c8622
video_core: support framebuffer crop rect top not zero
2022-08-20 21:41:40 +08:00
Liam
c5c425914f
video_core: implement R16G16B16X16 texture format
2022-08-19 17:17:38 -04:00
DJRobX
d8b160c883
Make vsync setting work for Vulkan
2022-08-07 20:57:47 -07:00
bunnei
9dc8d02acc
Merge pull request #8658 from liamwhite/plgp
...
video_core: differentiate between tiled and untiled framebuffer sizes for unaccelerated blits
2022-08-06 23:00:46 -07:00
bunnei
0f2fc6335e
Merge pull request #8700 from liamwhite/xc3-vk-crash
...
vk_texture_cache: return VK_NULL_HANDLE for views of null images
2022-08-06 13:11:34 -07:00
Liam
c40cec5e58
renderer_vulkan: add format fallbacks for R16G16B16_SFLOAT, R16G16B16_SSCALED, R8G8B8_SSCALED
2022-08-02 18:39:33 -04:00
Liam
1d364adf3e
vk_texture_cache: return VK_NULL_HANDLE for views of null images
2022-08-02 13:31:42 -04:00
Liam
fc013d88cb
video_core: stop waiting for shader compilation on user cancel
2022-07-29 23:33:40 -04:00
Liam
cbe5b8a13e
video_core: differentiate between tiled and untiled framebuffer sizes for unaccelerated copies
2022-07-27 21:52:06 -04:00
Liam
382b41b18f
video_core: use correct byte size for framebuffer
2022-07-19 17:46:26 -04:00
bunnei
02282477e7
yuzu: settings: Remove framerate cap and merge unlocked framerate setting.
...
- These were all somewhat redundant.
2022-07-16 23:11:39 -07:00
Morph
aec129c1ab
renderer_(gl/vk): Implement ASTC_10x6_UNORM
...
- Used by Monster Hunter Rise Update 10.0.2
2022-07-05 20:33:43 -04:00
german77
c34a95fa25
video_core: Replace VKUpdateDescriptorQueue with UpdateDescriptorQueue
2022-06-26 20:21:45 -05:00
german77
b5d6194f6d
video_core: Replace VKSwapchain with Swapchain
2022-06-26 20:21:45 -05:00
german77
a5e419535f
video_core: Replace VKQueryCache with QueryCache
2022-06-26 20:21:45 -05:00
german77
9775fae4eb
video_core: Replace VKScheduler with Scheduler
2022-06-26 20:21:45 -05:00
german77
a262dc02b5
video_core: Replace VKBlitScreen with BlitScreen
2022-06-26 20:21:45 -05:00
german77
fca5752690
video_core: Replace VKFenceManager with FenceManager
2022-06-26 20:21:45 -05:00
Morph
4572634a4e
vk_compute_pass: Explicitly cast to VkAccessFlags
...
According to the standard, a narrowing conversion is an implicit conversion from an integer or unscoped enumeration type to an integer type that cannot represent all the values of the original type, except when the value is a literal or constant expression.
MSVC, unlike GCC or Clang, determines this to be a narrowing conversion despite the enumeration exclusively containing values that fit within the range of a 32 bit integer, emitting a warning since designated initializers prohibit narrowing conversions.
To solve this, explicitly cast to the type we are initializing.
2022-06-15 07:12:16 -04:00
Morph
5568763a57
vk_compute_pass: Use VK_ACCESS_NONE
...
This enumeration was introduced in Vulkan 1.3, prefer using this instead of defaulting the enum.
Also resolves a narrowing conversion warning on MSVC.
2022-06-14 09:14:13 -04:00
Mai
a3b12e3809
Merge pull request #8439 from liamwhite/monkey-compiler
...
general: fix compilation on GCC 12
2022-06-14 08:34:16 -04:00
Morph
fcfe192e83
vk_compute_pass: Silence Wextra warning
...
Silences a warning about using enumerated and non-enumerated types in a conditional expression.
2022-06-14 05:29:57 -04:00