sunshineinabox
2d0c1c3a1c
Code review suggestions
2024-09-13 08:13:44 -07:00
sunshineinabox
dff81088e8
Replace Action array with a switch statment.
2024-09-09 22:03:50 -07:00
sunshineinabox
5a391f38fd
Refactor Cull Mode to only send face.
2024-09-09 21:50:18 -07:00
sunshineinabox
2fd093d4b4
Avoid setting stride if dynamic state is supported
2024-09-09 21:17:44 -07:00
sunshineinabox
f085b47b30
Address Feedback
2024-09-09 21:08:13 -07:00
sunshineinabox
01c6d5491e
Code Review Suggestions
2024-09-09 18:53:40 -07:00
sunshineinabox
4a3b10fa9f
Apply suggestions from code review
...
Simple suggestions from code review
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2024-09-09 18:11:35 -07:00
sunshineinabox
d9c5b5c753
Correct typo
2024-09-09 11:04:33 -07:00
sunshineinabox
2a3069d9a1
Enable Vertex Input Binding Stride extended state when available on newer MVK
2024-09-09 11:02:07 -07:00
sunshineinabox
381abda2c8
Primitive restart is enabled/disabled based on the original topology before its converted to its topology class, make this behavior consistent
2024-09-09 09:01:00 -07:00
sunshineinabox
9bcc8374da
Only attempt to change topology class if needed
2024-09-07 20:09:58 -07:00
sunshineinabox
1cb35a42db
Rework to reduce code duplication and possibility of error.
...
Reduce number of pipelines?
2024-09-07 17:26:26 -07:00
sunshineinabox
2846e88a5d
Clean up and some housekeeping
2024-09-04 19:51:26 -07:00
sunshineinabox
1fa1c7b01d
Need to test this on Windows
2024-09-02 21:09:09 -07:00
sunshineinabox
91c3ac2701
Revert a change
2024-09-02 16:22:10 -07:00
sunshineinabox
a7409e6fba
Some missed changes
2024-09-02 12:40:29 -07:00
sunshineinabox
5e86d5e178
There will still be an issue with extension is supported and dynmaic state is not
2024-09-01 21:33:05 -07:00
sunshineinabox
09b8095584
Avoid changing feedback loop aspect if extension is not supported prevents failed pipeline compiles (or seemingly incompatible)
2024-09-01 19:21:44 -07:00
sunshineinabox
3f900e6fa0
Resolve missed changes
2024-09-01 18:47:06 -07:00
sunshineinabox
6464f97973
Merge branch 'master' into MoreDynamicStatesPartOne
2024-09-01 18:43:34 -07:00
sunshineinabox
2298362e7f
Resolve remaining pipeline creation errors when extended pipeline states extension not supported
2024-09-01 18:17:19 -07:00
riperiperi
ca59c3f499
Vulkan: Feedback loop detection and barriers ( #7226 )
...
* Vulkan: Feedback loop improvements
This PR allows the Vulkan backend to detect attachment feedback loops. These are currently used in the following ways:
- Partial use of VK_EXT_attachment_feedback_loop_layout
- All renderable textures have AttachmentFeedbackLoopBitExt
- Compile pipelines with Color/DepthStencil feedback loop flags when present
- Support using FragmentBarrier for feedback loops (fixes regressions from https://github.com/Ryujinx/Ryujinx/pull/7012 )
TODO:
- AMD GPUs may need layout transitions for it to properly allow textures to be used in feedback loops.
- Use dynamic state for feedback loops. The background pipeline will always miss since feedback loop state isn't known on the GPU project.
- How is the barrier dependency flag used? (DXVK just ignores it, there's no vulkan validation...)
- Improve subpass dependencies to fix validation errors
* Mark field readonly
* Add feedback loop dynamic state
* fix: add MoltenVK resolver workaround
fix: add MoltenVK resolver workaround
* Formatting
* Fix more complaints
* RADV dcc workaround
* Use dynamic state properly, cleanup.
* Use aspects flags in more places
2024-09-01 21:28:16 -03:00
sunshineinabox
07f80bdbb7
Resolve some pipeline creation issue when extended dynamic states are not supported
2024-09-01 16:41:36 -07:00
sunshineinabox
3e5b946289
Merge branch 'master' into MoreDynamicStatesPartOne
2024-09-01 14:54:00 -07:00
riperiperi
398fa1c238
Vulkan: Update Silk.NET to 2.21 ( #7266 )
...
* Update Silk.NET version
* fix: add MoltenVK resolver workaround
fix: add MoltenVK resolver workaround
* Cleanup
* Readonly ref warnings
* Remove driver id todo
2024-09-01 17:33:11 -03:00
gdkchan
460f9faf4e
Fix NRE when using buffer image array ( #7159 )
2024-08-21 00:49:17 +01:00
sunshineinabox
674288a71f
Avoid creating pipelines for each topology.
2024-08-12 22:09:09 -07:00
sunshineinabox
2d1af4ddb4
Set a default topology state that can be overwritten later if needed.
2024-08-12 20:57:08 -07:00
sunshineinabox
1a43536092
LogicOps
2024-08-11 19:54:52 -07:00
sunshineinabox
49494b5b2d
Some more default values
2024-08-10 17:16:48 -07:00
sunshineinabox
d6f05044ea
Set stride to 0 if Vertex Input dynamic state is enabled
2024-08-10 16:49:05 -07:00
sunshineinabox
42c47e408d
If dynamic states are enabled use default values for calculation uuid
2024-08-10 16:35:30 -07:00
sunshineinabox
af31a14c77
Spec states it CAN be null
2024-08-06 23:24:34 -07:00
sunshineinabox
6aa30b24ba
Actually change what is being passed to HwCapabilities instead of just disabling the feature.
2024-08-06 08:15:17 -07:00
sunshineinabox
53ca3b53b6
Exclude Patch Control Points dynamic state at this time
2024-08-05 23:18:28 -07:00
sunshineinabox
482b960740
More changes to be inline with spec
2024-08-04 20:53:54 -07:00
sunshineinabox
af9de85a1b
Origin of crash?
2024-08-04 20:34:49 -07:00
sunshineinabox
f15b6c85f6
According to spec there is no need to do this as it should automatically be not set when not needed
2024-08-04 16:16:27 -07:00
sunshineinabox
c53f58a4a9
Resolve issue with primitive toplogy
...
Primitive Restart Enable should depend on Extended dynamic state 2 extension not 1
Resolve Primitive restart enable
Fix MoltenVK crash
2024-08-03 23:24:49 -07:00
sunshineinabox
3b398adbe6
Refactor PipelineUid and pack TopologyClass
...
Remove basepipelineindex as its extraneous
2024-08-03 19:22:46 -07:00
jhorv
59ddb26628
replace ByteMemoryPool usage in Ryujinx.Graphics ( #7129 )
...
* chore: replace `ByteMemoryPool` usage with `MemoryOwner<byte>`
* refactor: `PixelConverter.ConvertR4G4ToR4G4B4A4()` - rename old `outputSpan` to `outputSpanUInt16`, reuse same output `Span<byte>` as newly-freed name `outputSpan`
* eliminate temporary buffer allocations
* chore, perf: use MemoryOwner<byte> instead of IMemoryOwner<byte>
2024-08-03 19:50:53 +01:00
sunshineinabox
59ef2ac799
Accidental change
2024-08-02 18:17:28 -07:00
sunshineinabox
ce450dc08e
Invert logic to only set flags dirty if those are supported.
2024-08-02 07:27:44 -07:00
sunshineinabox
023f3ed44f
Resolve build errors
2024-08-01 19:21:32 -07:00
sunshineinabox
fa801ba472
Match other code in project
2024-08-01 19:17:59 -07:00
sunshineinabox
9b02fd6dc0
Conver to TopologyClass from Vulkan Topology
2024-08-01 08:19:11 -07:00
sunshineinabox
adc7528b54
Why cast when you don't need to cast
2024-07-31 18:56:06 -07:00
sunshineinabox
1bcc9c029a
Remove redundant logic, just use max possible dynamic states
2024-07-31 18:51:44 -07:00
sunshineinabox
38c9ec925c
Whitespace fix
2024-07-31 18:22:29 -07:00
sunshineinabox
3f7a3ac558
Adapt changes from #7102 for dynamic states
2024-07-31 18:18:46 -07:00