Commit Graph

49 Commits

Author SHA1 Message Date
bunnei 1f6dcd3784 hle: nvflinger: Migrate android namespace -> Service::android. 2022-03-24 18:13:33 -07:00
bunnei 3396730b85 hle: nvflinger: Move PixelFormat to its own header. 2022-03-24 18:13:32 -07:00
Morph c7bdf8825f video_core: Add S8_UINT stencil format 2021-11-17 15:04:38 -05:00
FernandoS27 91357303b1 Vulkan Rasterizer: Fix clears on integer textures. 2021-11-16 22:11:31 +01:00
ameerj 0213e5353d vk_texture_cache: Use nearest neighbor scaling when available 2021-11-16 22:11:30 +01:00
Fernando Sahmkow 2fd0207e2e Reaper: Address Feedback. 2021-06-16 21:35:03 +02:00
ReinUsesLisp d25b097e84 video_core: Rewrite the texture cache
The current texture cache has several points that hurt maintainability
and performance. It's easy to break unrelated parts of the cache
when doing minor changes. The cache can easily forget valuable
information about the cached textures by CPU writes or simply by its
normal usage.The current texture cache has several points that hurt
maintainability and performance. It's easy to break unrelated parts
of the cache when doing minor changes. The cache can easily forget
valuable information about the cached textures by CPU writes or simply
by its normal usage.

This commit aims to address those issues.
2020-12-30 03:38:50 -03:00
Lioncash ea0e85b869 video_core: Remove unnecessary enum class casting in logging messages
fmt now automatically prints the numeric value of an enum class member
by default, so we don't need to use casts any more.

Reduces the line noise a bit.
2020-12-07 00:41:50 -05:00
ReinUsesLisp a068ce4c32 video_core: Rearrange pixel format names
Normalizes pixel format names to match Vulkan names. Previous to this
commit pixel formats had no convention, leading to confusion and
potential bugs.
2020-07-13 01:44:23 -03:00
ReinUsesLisp 44fb3cf920 video_core: Fix DXT4 and RGB565 2020-07-13 01:01:09 -03:00
ReinUsesLisp 46c327d2d9 video_core: Fix B5G6R5_UNORM render target format 2020-07-13 01:01:09 -03:00
ReinUsesLisp ac8eeffbbc video_core: Implement RGBA32_SINT render target 2020-07-13 01:01:09 -03:00
ReinUsesLisp 59610b129f video_core: Implement RGBA32_SINT render target 2020-07-13 01:01:09 -03:00
ReinUsesLisp 5ba68f5fab video_core: Implement RGBA16_SINT render target 2020-07-13 01:01:09 -03:00
ReinUsesLisp f8136072ff video_core: Implement RGBA8_SINT render target 2020-07-13 01:01:09 -03:00
ReinUsesLisp ad494d0a3c video_core: Implement RG32_SINT render target 2020-07-13 01:01:09 -03:00
ReinUsesLisp 469c89d31a video_core: Implement RG8_SINT render target and fix RG8_UINT 2020-07-13 01:01:09 -03:00
ReinUsesLisp c6e852f5c5 video_core: Implement R8_SINT render target 2020-07-13 01:01:08 -03:00
ReinUsesLisp 29e5516bb8 video_core: Implement R8_SNORM render target 2020-07-13 01:01:08 -03:00
ReinUsesLisp 0902bb64f1 video_core/surface: Reorder render target to pixel format switch 2020-07-13 01:01:08 -03:00
Morph 6665cd04f1 texture: Implement R8G8UI
- Used by The Walking Dead: The Final Season
2020-04-30 13:19:36 -04:00
ReinUsesLisp 25cfbc7786 video_core: Implement RGBA16_SNORM
Implement RGBA16_SNORM with the current API. Nothing special here.
2020-03-12 21:42:33 -03:00
ReinUsesLisp 74984326b0 video_core/surface: Add R32_SINT render target format 2020-02-25 17:19:34 -03:00
ReinUsesLisp c884dc8af2 texture_cache: Use a table instead of switch for texture formats
Use a large flat array to look up texture formats. This allows us to
properly implement formats with different component types. It should
also be faster.
2019-11-14 20:57:10 -03:00
ReinUsesLisp c6afe25477 texture_cache: Drop abstracted ComponentType
Abstracted ComponentType was not being used in a meaningful way.
This commit drops its usage.

There is one place where it was being used to test compatibility between
two cached surfaces, but this one is implied in the pixel format.
Removing the component type test doesn't change the behaviour.
2019-11-14 18:21:42 -03:00
greggameplayer d60bce4edd correct the implementation of RGBA16UI 2019-11-14 21:37:39 +01:00
Fernando Sahmkow 5305d723c2 Video_Core: Implement texture format E5B9G9R9_SHAREDEXP.
This commit implements the E5B9G9R9 Texture format into the general 
system and OpenGL backend.
2019-10-27 16:44:09 -04:00
Rodrigo Locatti 1cb43f3f0b Merge pull request #2966 from FernandoS27/astc-formats
Implement a series of ASTC formats and R4G4B4A4 format
2019-10-17 19:24:11 -03:00
Lioncash e08002310a video_core/surface: Add missing break in PixelFormatFromTextureFormat()
Prevents fallthrough into the following case.
2019-10-15 21:53:15 -04:00
Fernando Sahmkow 57cac4e614 Surfaces: Implement R4G4B4A4U format. 2019-10-09 12:57:02 -04:00
Fernando Sahmkow ecba8090f7 Surfaces: Implement ASTC 6x6 10x10 12x12 8x6 6x5 2019-10-09 12:44:31 -04:00
FearlessTobi 99b280bbf7 video_core: Implement RGBX16F PixelFormat 2019-09-22 02:16:44 +02:00
ReinUsesLisp 2727ebd801 video_core/surface: Add function to detect sRGB surfaces
This is required for proper conversion to RGBA8_UNORM or RGBA8_SRGB
surfaces when a backend can target both native and converted ASTC.
2019-09-13 00:27:04 -03:00
ReinUsesLisp 73e1bc3348 renderer_opengl: Implement RGB565 framebuffer format 2019-08-21 02:28:31 -03:00
Fernando Sahmkow 7afd5d2367 surface: Correct format S8Z24 2019-06-20 21:38:34 -03:00
ReinUsesLisp 8a592f8cd8 gl_rasterizer_cache: Use texture buffers to emulate texture buffers 2019-06-20 21:36:12 -03:00
ReinUsesLisp 91b16d383a maxwell_3d: Partially implement texture buffers as 1D textures 2019-06-20 21:36:12 -03:00
ReinUsesLisp 7a56d07632 video_core: Silent -Wswitch warnings 2019-04-18 15:54:39 -03:00
Fernando Sahmkow 1f12f92fc8 Implement Texture Format ZF32_X24S8. 2019-04-09 12:33:46 -04:00
Lioncash e45b6f69ea video_core/surface: Remove obsolete TODO in PixelFormatFromRenderTargetFormat()
This isn't needed anymore, according to Hexagon
2019-03-05 10:15:06 -05:00
greggameplayer b4603fafcb Implement BGRA8 framebuffer format 2019-02-09 23:44:01 +01:00
ReinUsesLisp 2a94d36231 gl_shader_cache: Fix texture view for cubemaps as cubemap arrays
Cubemaps are considered layered and to create a texture view the texture
mustn't be a layered texture, resulting in cubemaps being bound as
cubemap arrays. To fix this issue this commit introduces an extra
surface parameter called "is_array" and uses this to query for texture
view creation.

Now that texture views for cubemaps are actually being created, this
also fixes the number of layers created for the texture view (since they
have to be 6 to create a texture view of cubemaps).
2019-01-29 23:49:02 -03:00
bunnei 82662f374a gpu: Remove PixelFormat G8R8U and G8R8S, as they do not seem to exist.
- Fixes UI rendering issues in The Legend of Zelda: Breath of the Wild.
2018-12-28 15:36:45 -05:00
David Marcec 1dfb0a513a Fixed uninitialized memory due to missing returns in canary
Functions which are suppose to crash on non canary builds usually don't return anything which lead to uninitialized memory being used.
2018-12-19 12:52:32 +11:00
greggameplayer ec188ec832 Implement ASTC_2D_10X8 & ASTC_2D_10X8_SRGB (#1666)
* Implement ASTC_2D_10X8 & ASTC_2D_10X8_SRGB
( needed by Mario+Rabbids Kingdom Battle )

* Small placement correction
2018-11-12 18:34:54 -08:00
bunnei 722303d3f3 Merge pull request #1616 from FernandoS27/cube-array
Implement Cube Arrays
2018-11-05 15:28:48 -05:00
FernandoS27 82d04c5e99 Fix ASTC Decompressor to support depth parameter 2018-11-01 19:22:12 -04:00
FernandoS27 d125512225 Implement Cube Arrays 2018-11-01 11:56:19 -04:00
ReinUsesLisp 58988435c2 video_core: Move surface declarations out of gl_rasterizer_cache 2018-10-30 16:07:20 -03:00