Commit graph

6054 commits

Author SHA1 Message Date
Fernando Sahmkow
d14f1c9d42 GPU: Improve syncing. 2022-01-29 23:02:04 +01:00
Fernando Sahmkow
19270ae4e6 Rasterizer: Implement Inline2Memory Acceleration. 2022-01-29 22:53:27 +01:00
Fernando Sahmkow
4a3a7673b7 Inline2Memory: Flush before writting buffer. 2022-01-29 17:42:28 +01:00
ameerj
9bffee169b buffer_cache: Reduce stream buffer allocations when expanding from the left
The existing stream buffer optimization accounts for size increases at the end of the allocated buffer.
This adds the same optimization, increasing the size from the beginning of the buffer as well to reduce buffer allocations when expanding the same buffer from the left.
2022-01-27 15:31:43 -05:00
Lioncash
1d5b635601 common/xbyak_api: Make BuildRegSet() constexpr
This allows us to eliminate any static constructors that would have been
emitted due to the function not being constexpr.
2022-01-26 16:29:15 -05:00
bunnei
aac2862552 Merge pull request #7780 from lioncash/macro
video_core/macro: Move impl classes into their cpp files
2022-01-26 12:39:59 -08:00
Morph
5c4f443aea Merge pull request #7779 from lioncash/gpu-iface
gpu: Remove obsoleted CDmaPusher() accessors
2022-01-25 16:16:04 -05:00
Lioncash
ebc41b3af6 video_core/macro: Add missing <cstring> header
Necessary since memcpy is used.
2022-01-25 14:10:02 -05:00
Lioncash
e7242491a4 video_core/macro_interpreter: Move impl class to the cpp file
Keeps the implementation hidden from the intended API and lessens the
header dependencies on the interpreter's header.
2022-01-25 14:03:48 -05:00
Lioncash
6950d969aa video_core/macro_hle: Return unique_ptr directly from GetHLEProgram()
Same behavior, but less code and header dependencies.
2022-01-25 13:50:14 -05:00
Lioncash
65e617754f video_core/macro: Remove unused parameter from Execute()
Simplifies the function interface.
2022-01-25 13:41:38 -05:00
Lioncash
791b988d07 video_core/macro_jit_x64: Remove unused impl class member
Reduces the size of the impl class a tiny bit.
2022-01-25 13:33:09 -05:00
Lioncash
9a802c7a09 video_core/macro_jit_x64: Decouple PersistentCallerSavedRegs() from impl
This doesn't depend on class state and can just be a regular function.
2022-01-25 13:31:54 -05:00
Lioncash
0b91a77ccc video_core/macro_jit_x64: Move impl class into cpp file
Keeps the implementation internalized and also reduces API-facing header
dependencies.

Notably, this fully internalizes all of the xbyak externals.
2022-01-25 13:31:46 -05:00
Lioncash
e3025b8fb9 video_core/macro_hle: Move impl class into cpp file
Given it's intended to be an internal implementation class, we can move
it into the cpp file to ensure that.

This also lets us move some header dependencies into the cpp file as
well.
2022-01-25 13:15:48 -05:00
Lioncash
4d8010eee3 gpu: Tidy up forward declarations
Over time a few forward declarations became unnecessary, so we can
remove these to tidy up the header a little bit.
2022-01-25 13:05:39 -05:00
Lioncash
4c5c860587 gpu: Remove obsoleted CDMAPusher() accessors
These were obsoleted in 10cc89bfdf but
were accidentally overlooked.
2022-01-25 12:53:56 -05:00
Lioncash
4272d239b6 vk_fsr: Replace comma operator with semicolon
Generally, we should be ending statements with a semicolon not a comma

Resolves a clang diagnostic.
2022-01-25 12:42:27 -05:00
Jan Beich
c2338f2f04 video_core: constify AVCodec for ffmpeg >= 5.0
src/video_core/command_classes/codecs/codec.cpp:177:16: error: assigning to 'AVCodec *' from 'const AVCodec *' discards qualifiers
    av_codec = avcodec_find_decoder(codec);
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-01-20 11:09:21 +00:00
Georg Lehmann
feb8a473ed vulkan_device: Fix sType for VkPhysicalDeviceShaderAtomicInt64Features 2022-01-19 19:48:46 +01:00
ameerj
09dc136a39 astc_decoder: Combine FastReplicate functions to work around new NV driver bug
The new Nvidia drivers have a bug where the FastReplicateTo6 function produces a lookup into the REPLICATE_TO_8 table rather than the REPLICATE_TO_6 table.

This seems to be an optimization gone wrong. Combining the logic of the FastReplicate functions seems to address the bug.
2022-01-16 16:13:20 -05:00
Fernando S
6dfbefd29b Merge pull request #7658 from ameerj/sparse-fixes
video_core/memory_manager: Fixes for sparse memory management
2022-01-06 13:50:14 +01:00
Mai M
2b88e2536c Merge pull request #7673 from german77/no_return
glsl: Remove unreachable return
2022-01-05 06:41:16 -05:00
Narr the Reg
7b752c8f47 video_core: Remove unnecesary maybe_unused flag 2022-01-04 21:25:47 -06:00
bunnei
ccfce4da6f Merge pull request #7636 from vonchenplus/buffer_queue_query
core:hle:service:nvflinger Implement few type in bufferqueue query method
2022-01-04 11:28:49 -08:00
Fernando S
978517824a Merge pull request #7670 from ameerj/vsync-block
gpu: Add shut down method to synchronize threads before destruction
2022-01-04 14:16:24 +01:00
bunnei
208d87ec53 Merge pull request #7251 from FernandoS27/shader-dump
ShaderDecompiler: Add a debug option to dump the game's shaders.
2022-01-03 17:56:30 -08:00
ameerj
664fcdc64b gpu: Add shut down method to synchronize threads before destruction 2022-01-03 20:47:26 -05:00
Fernando Sahmkow
65387dd0a0 ShaderDecompiler: Add a debug option to dump the game's shaders. 2022-01-04 02:39:00 +01:00
ameerj
8badb6f4a7 Revert "Merge pull request #7668 from ameerj/fence-stop-token"
This reverts commit 5a612e9217, reversing
changes made to 2e61bc3d51.
2022-01-03 20:28:54 -05:00
ameerj
0585c60227 gpu: Use std::stop_token in WaitFence for VSync thread
Fixes a hang that may occur when stopping emulation and the VSync thread is blocked on the syncpoint condition variable.
2022-01-03 12:31:33 -05:00
Fernando S
97db926f08 Merge pull request #7624 from ameerj/intel-msaa-scale
vk_texture_cache: Use 3D scale helpers for MSAA texture scaling on Intel Windows drivers
2022-01-03 00:40:14 +01:00
Fernando S
8a790b09a7 Merge pull request #7629 from ameerj/nv-driver-fixes
shaders: Add fixes for NVIDIA drivers 495+
2022-01-03 00:39:59 +01:00
ameerj
5a7940c1f1 texture_cache/util: Fix s32 overflow when resolving overlaps 2021-12-31 20:03:22 -05:00
ameerj
4c10c0a514 video_core/memory_manager: Fixes for sparse memory management 2021-12-31 17:04:02 -05:00
ameerj
5c644fe97b video_core/memory_manager: Deduplicate Read/WriteBlock 2021-12-31 02:08:22 -05:00
ameerj
c5c13369fa glsl: Add boolean reference workaround 2021-12-29 19:03:50 -05:00
ameerj
a57dc3509a glsl_context_get_set: Add alternative cbuf type for broken drivers
some drivers have a bug bitwise converting floating point cbuf values to uint variables. This adds a workaround for these drivers to make all cbufs uint and convert to floating point as needed.
2021-12-29 19:03:50 -05:00
Feng Chen
5e725163a0 Remove invalid header include 2021-12-28 18:51:11 +08:00
bunnei
ae33a76753 Merge pull request #7622 from ameerj/vk-rescale-invalid-ptr
vk_texture_cache: Fix invalidated pointer access
2021-12-28 00:46:37 -08:00
ameerj
bb108db1de vk_texture_cache: Use 3D scale helpers for MSAA texture scaling on Intel Windows drivers
Fixes a crash when scaling MSAA textures in titles such as Sonic Colors Ultimate.
2021-12-23 22:35:19 -05:00
ameerj
b22cc82f64 blit_image: Remove unused function 2021-12-23 21:06:32 -05:00
ameerj
531d53d6b9 vk_texture_cache: Fix invalidated pointer access
The vulkan ImageView held a reference to its source image for rescale status checking. This pointer is sometimes invalidated when the texture cache slot_images container is resized.
To avoid an invalid pointer dereference, the ImageView now holds a reference to the container itself.
2021-12-23 20:55:48 -05:00
Fernando S
88a132afcf Merge pull request #7375 from vonchenplus/convert_legacy
Convert all legacy attributes to generic attributes
2021-12-22 17:36:05 +01:00
bunnei
d3c26baaf1 Merge pull request #7599 from FernandoS27/primrestart-vulkan
Vulkan: Fix Primitive Restart and implement Logical Operations
2021-12-22 00:19:23 -08:00
Jan Beich
85f65a6995 video_core/codecs: re-enable VAAPI/VDPAU on BSDs after f91cc356fb 2021-12-18 20:57:30 +00:00
bunnei
165de9393f Merge pull request #7587 from liushuyu/fix-linux-decoding
[Patch v2] externals/ffmpeg: refactor ffmpeg searching and handling in cmake
2021-12-18 02:33:07 -08:00
vonchenplus
8fe519b656 Address format clang 2021-12-18 14:27:07 +08:00
Fernando Sahmkow
15c634806b Vulkan: Fix the checks for primitive restart extension. 2021-12-18 07:17:08 +01:00
Fernando S
fff375ff89 Merge pull request #7399 from ameerj/art-refactor
video_core: Refactoring post A.R.T. merge
2021-12-18 07:09:58 +01:00