Commit graph

6221 commits

Author SHA1 Message Date
bunnei
f92bedb450 Merge pull request #8874 from vonchenplus/align_index_buffer_size
Align index buffe size when vertex_buffer_unified_memory enable
2022-10-01 10:28:50 -07:00
Liam
52a802abdd macro_jit_x64: cancel exit for taken branch 2022-10-01 01:32:24 -04:00
bunnei
48430f14cb Merge pull request #8910 from vonchenplus/astc_decode_error
video_core: Modify astc texture decode error fill value
2022-09-30 15:34:11 -07:00
Liam
08f063e6a4 vulkan: automatically use larger staging buffer sizes when possible 2022-09-25 02:28:03 -04:00
FengChen
1dd5d8fc8e video_core: Fix legacy to generic location unpaired 2022-09-20 12:03:31 +08:00
Feng Chen
328ad69854 Merge branch 'master' into mipmap 2022-09-20 11:56:43 +08:00
FengChen
38e9c78843 video_core: Generate mipmap texture by drawing 2022-09-20 11:55:43 +08:00
Morph
e48a46f331 astc: Enable parallel CPU astc decoding
Given the issues with GPU accelerated ASTC decoding with NVIDIA's latest drivers, parallelize astc decoding on the CPU.
Uses half the available threads in the system for astc decoding.
2022-09-16 10:16:42 -04:00
FengChen
b8b37d6900 video_core: Modify astc texture decode error fill value 2022-09-15 17:04:44 +08:00
FengChen
ccc4202735 Align index buffe size when vertex_buffer_unified_memory enable 2022-09-10 20:01:33 +08:00
lat9nq
c48259ca81 Merge pull request #8819 from liamwhite/cash-money
video_core: add option for pessimistic flushing
2022-09-08 22:46:58 -04:00
Morph
649c49525d style: General style changes to match with the rest of the codebase 2022-08-31 08:51:47 -04:00
Morph
9488b889a0 (shader/pipeline)_cache: Raise shader/pipeline cache version
Since the following commit: af222dc924 , many games will refuse to boot unless the shader/pipeline cache has been invalidated.
2022-08-31 08:39:37 -04:00
Fernando S
af222dc924 Merge pull request #8752 from vonchenplus/rectangle_texture
video_code: support rectangle texture
2022-08-31 10:40:45 +02:00
Liam
39c3184237 video_core: add option for pessimistic flushing 2022-08-25 12:32:14 -04:00
FengChen
98656c14a8 video_code: support rectangle texture 2022-08-25 12:45:58 +08:00
Narr the Reg
cdfffecbd0 video_core: vulkan: rasterizer: Workaround on viewport swizzle on AMD 2022-08-23 18:38:34 -05:00
liamwhite
eaf4777e58 Merge pull request #8784 from Docteh/nosnek
code: dodge PAGE_SIZE #define
2022-08-21 12:59:01 -04:00
vonchenplus
477cdc7566 video_core: support framebuffer crop rect top not zero 2022-08-20 21:41:40 +08:00
Kyle Kienapfel
ea00332a67 code: dodge PAGE_SIZE #define
Some header files, specifically for OSX and Musl libc define PAGE_SIZE to be a number
This is great except in yuzu we're using PAGE_SIZE as a variable

Specific example
`static constexpr u64 PAGE_SIZE = u64(1) << PAGE_BITS;`

PAGE_SIZE PAGE_BITS PAGE_MASK are all similar variables.
Simply deleted the underscores, and then added YUZU_ prefix

Might be worth noting that there are multiple uses in different classes/namespaces
This list may not be exhaustive

Core::Memory   12 bits (4096)
QueryCacheBase 12 bits
ShaderCache    14 bits (16384)
TextureCache   20 bits (1048576, or 1MB)

Fixes #8779
2022-08-19 16:08:40 -07:00
Liam
ee4ec6a211 video_core: implement R16G16B16X16 texture format 2022-08-19 17:17:38 -04:00
bunnei
9c1fafeeb7 Merge pull request #8739 from merryhime/swizzle_table
video_core/textures/decoders: Avoid SWIZZLE_TABLE
2022-08-13 22:03:32 -07:00
Merry
e1dd4de1eb video_core/textures/decoders: Avoid SWIZZLE_TABLE 2022-08-09 00:27:26 +01:00
DJRobX
705c6c16b9 Make vsync setting work for Vulkan 2022-08-07 20:57:47 -07:00
bunnei
a25a9d7417 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
24c4cbf99f 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
bffdc2b3ce renderer_vulkan: add format fallbacks for R16G16B16_SFLOAT, R16G16B16_SSCALED, R8G8B8_SSCALED 2022-08-02 18:39:33 -04:00
Liam
5937160821 vk_texture_cache: return VK_NULL_HANDLE for views of null images 2022-08-02 13:31:42 -04:00
bunnei
ceed22dbc4 Merge pull request #8678 from liamwhite/stop-waiting
video_core: stop waiting for shader compilation on user cancel
2022-07-31 14:47:43 -07:00
Liam
652e1a7bde renderer_opengl: delete shader source after linking 2022-07-30 13:21:26 -04:00
Liam
50ed529c2a video_core: stop waiting for shader compilation on user cancel 2022-07-29 23:33:40 -04:00
Liam
c642834b4d video_core: differentiate between tiled and untiled framebuffer sizes for unaccelerated copies 2022-07-27 21:52:06 -04:00
liamwhite
4b9cfe1d02 Merge pull request #8542 from Morph1984/gpu-use-old-q
gpu_thread: Use the previous MPSCQueue implementation
2022-07-27 15:55:28 -04:00
Andrea Pappacoda
6a2efdda2f chore: make yuzu REUSE compliant
[REUSE] is a specification that aims at making file copyright
information consistent, so that it can be both human and machine
readable. It basically requires that all files have a header containing
copyright and licensing information. When this isn't possible, like
when dealing with binary assets, generated files or embedded third-party
dependencies, it is permitted to insert copyright information in the
`.reuse/dep5` file.

Oh, and it also requires that all the licenses used in the project are
present in the `LICENSES` folder, that's why the diff is so huge.
This can be done automatically with `reuse download --all`.

The `reuse` tool also contains a handy subcommand that analyzes the
project and tells whether or not the project is (still) compliant,
`reuse lint`.

Following REUSE has a few advantages over the current approach:

- Copyright information is easy to access for users / downstream
- Files like `dist/license.md` do not need to exist anymore, as
  `.reuse/dep5` is used instead
- `reuse lint` makes it easy to ensure that copyright information of
  files like binary assets / images is always accurate and up to date

To add copyright information of files that didn't have it I looked up
who committed what and when, for each file. As yuzu contributors do not
have to sign a CLA or similar I couldn't assume that copyright ownership
was of the "yuzu Emulator Project", so I used the name and/or email of
the commit author instead.

[REUSE]: https://reuse.software

Follow-up to b2eb103829
2022-07-27 12:53:49 +02:00
Liam
bae82de100 video_core: use correct byte size for framebuffer 2022-07-19 17:46:26 -04:00
bunnei
e42a6ad7d9 yuzu: settings: Remove framerate cap and merge unlocked framerate setting.
- These were all somewhat redundant.
2022-07-16 23:11:39 -07:00
Morph
16213b1dee gpu_thread: Use the previous MPSCQueue implementation
The bounded MPSCQueue implementation causes crashes in Fire Emblem Three Houses, use the previous implementation for now.
2022-07-06 01:33:17 -04:00
Morph
3cd5e47ee3 renderer_(gl/vk): Implement ASTC_10x6_UNORM
- Used by Monster Hunter Rise Update 10.0.2
2022-07-05 20:33:43 -04:00
lat9nq
973290ff56 Revert "vulkan_device: Block AMDVLK's VK_KHR_push_descriptor" 2022-06-29 16:35:06 -04:00
german77
c0b4082192 video_core: Replace VKUpdateDescriptorQueue with UpdateDescriptorQueue 2022-06-26 20:21:45 -05:00
german77
1d54e70cdd video_core: Replace VKSwapchain with Swapchain 2022-06-26 20:21:45 -05:00
german77
8944399d57 video_core: Replace VKQueryCache with QueryCache 2022-06-26 20:21:45 -05:00
german77
d7b293b022 video_core: Replace VKScheduler with Scheduler 2022-06-26 20:21:45 -05:00
german77
3003462a0f video_core: Replace VKBlitScreen with BlitScreen 2022-06-26 20:21:45 -05:00
german77
c13b99f357 video_core: Replace VKFenceManager with FenceManager 2022-06-26 20:21:45 -05:00
liamwhite
1d18c8d3d9 Merge pull request #8460 from Morph1984/bounded-q
bounded_threadsafe_queue: Use constexpr capacity and mask
2022-06-15 19:39:22 -04:00
Morph
3417e4ca5f bounded_threadsafe_queue: Use constexpr capacity and mask
While this is the primary change, we also:
- Remove the mpsc namespace and rename Queue to MPSCQueue
- Make Slot a private struct within MPSCQueue
- Remove the AlignedAllocator template argument, as we use std::allocator
- Replace instances of mask + 1 with capacity, and mask + 2 with capacity + 1
2022-06-15 16:59:13 -04:00
Morph
ddc17d2088 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
Mai
bb0a6faa0a Merge pull request #8383 from Morph1984/shadow-of-the-past
yuzu: Make variable shadowing a compile-time error
2022-06-14 21:08:58 -04:00
Morph
5c72801730 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