4fd655cb46
video_core: eliminate constant ternary
...
`via_header_index` is already checked above, so it would never be true in this branch
2021-08-19 21:22:05 +03:00
d621e96d0d
shader: Initial OpenGL implementation
2021-07-22 21:51:30 -04:00
9764c13d6d
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
f95602f152
video_core: Resolve more variable shadowing scenarios pt.3
...
Cleans out the rest of the occurrences of variable shadowing and makes
any further occurrences of shadowing compiler errors.
2020-12-05 16:02:23 -05:00
fbc232426d
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
a7baf6fee4
video_core: Add MSAA registers in 3D engine and TIC
...
This adds the registers used for multisampling. It doesn't implement
anything for now.
2020-04-12 00:21:27 -03:00
a209d464f9
video_core/textures: Move GetMaxAnisotropy to cpp file
2020-04-07 20:47:31 -03:00
d7db088180
video_core/texture: Use a LUT to convert sRGB texture borders
...
This is a reversed look up table extracted from
https://gist.github.com/rygorous/2203834#file-gistfile1-cpp-L41-L62
that is used in
04d4e9e587/source/maxwell/tsc_generate.cpp (L38)
Games usually bind 0xFD expecting a float texture border of 1.0f.
The conversion previous to this commit was multiplying the uint8 sRGB
texture border color by 255. This is close to 1.0f but when that
difference matters, some graphical glitches appear.
This look up table is manually changed in the edges, clamping towards
0.0f and 1.0f.
While we are at it, move this logic to its own translation unit.
2020-04-07 20:38:14 -03:00
1aa75b1081
textures: Fix anisotropy hack
...
Previous code could generate an anisotropy value way higher than x16.
2020-03-08 15:59:38 -03:00
7ee6065178
Create an "Advanced" tab in the graphics configuration tab and add anisotropic filtering levels.
2020-02-27 21:34:00 -05:00
096f339a2a
video_core: Silence implicit conversion warnings
2019-11-08 22:48:50 +00:00
a993df1ee2
shader/node: Unpack bindless texture encoding
...
Bindless textures were using u64 to pack the buffer and offset from
where they come from. Drop this in favor of separated entries in the
struct.
Remove the usage of std::set in favor of std::list (it's not std::vector
to avoid reference invalidations) for samplers and images.
2019-10-29 20:53:48 -03:00
538ddd220e
video_core/textures: Remove unused index entry in FullTextureInfo
2019-10-28 00:14:38 -03:00
e7bdf8b22a
textures: Fix texture buffer size calculation
2019-07-18 01:07:08 -03:00
082740d34d
surface: Correct format S8Z24
2019-06-20 21:38:34 -03:00
b8c75a845b
maxwell_3d: Partially implement texture buffers as 1D textures
2019-06-20 21:36:12 -03:00
345e73f2fe
video_core: Use un-shifted block sizes to avoid integer divisions
...
Instead of storing all block width, height and depths in their shifted
form:
block_width = 1U << block_shift;
Store them like they are provided by the emulated hardware (their
block_shift form). This way we can avoid doing the costly
Common::AlignUp operation to align texture sizes and drop CPU integer
divisions with bitwise logic (defined in Common::AlignBits).
2019-06-20 21:36:12 -03:00
a89cc0bafc
maxwell_to_gl: Use GL_CLAMP to emulate Clamp wrap mode
2019-05-30 13:21:01 -03:00
fbf452ab0e
video_core/texures/texture: Remove unnecessary includes
...
Nothing in this header relies on common_funcs or the memory manager.
This gets rid of reliance on indirect inclusions in the OpenGL caches.
2019-04-06 00:03:35 -04:00
6788ebffc8
Merge pull request #2229 from ReinUsesLisp/vk-sampler-cache
...
vk_sampler_cache: Implement a sampler cache
2019-03-14 21:22:34 -04:00
a63295a872
video_core/texture: Fix up sampler lod bias
2019-03-13 00:45:54 -03:00
aa59d77c3b
vk_sampler_cache: Implement a sampler cache
2019-03-12 20:20:57 -03:00
8ebeb9ade2
video_core/texture: Add a raw representation of TSCEntry
2019-03-12 16:56:29 -03:00
a0be7b3b92
gl_rasterizer: Encapsulate sampler queries into methods
2019-03-09 04:35:57 -03:00
10ab714fe0
Merge pull request #2042 from ReinUsesLisp/nouveau-tex
...
maxwell_3d: Allow texture handles with TIC id zero
2019-02-06 20:19:20 -05:00
b5e685b297
video_core/texture: Fix BitField size for depth_minus_one
2019-02-05 04:32:06 -03:00
390721a561
maxwell_3d: Allow texture handles with TIC id zero
...
Also remove "enabled" field from Tegra::Texture::FullTextureInfo because
it would become unused.
2019-02-03 04:58:24 -03:00
ddfbe0b58d
Implemented Tile Width Spacing
2018-11-26 09:05:12 -04:00
81a9c5fe6f
fix sampler configuration, thanks to Marcos for his investigation
2018-11-17 19:59:34 -03:00
e9610ec0dd
set sampler max lod, min lod, lod bias and max anisotropy
2018-11-11 16:31:00 -03:00
0287b2be6d
Implement sRGB Support, including workarounds for nvidia driver issues and QT sRGB support
2018-10-28 01:13:55 -03:00
e0ca938b22
Propagate depth and depth_block on modules using decoders
2018-10-13 15:25:18 -04:00
af653906d0
Fixed block height settings for RenderTargets and Depth Buffers, and added block width and block depth
2018-10-09 21:14:32 -04:00
752faff2bc
Implemented Depth Compare and Shadow Samplers
2018-10-06 11:27:54 -04:00
f543b43fd0
gl_rasterizer_cache: Implement render to cubemap.
2018-09-30 14:31:58 -04:00
ce8291f6c5
gl_rasterizer_cache: Track texture depth.
2018-09-08 02:53:38 -04:00
69c45ce71c
gl_rasterizer: Implement texture border color.
2018-07-23 23:34:42 -04:00
bb960c8cb4
video_core: Use nested namespaces where applicable
...
Compresses a few namespace specifiers to be more compact.
2018-07-20 18:23:54 -04:00
47629c89a8
GPU: Support changing the texture swizzles for Maxwell textures.
2018-06-06 18:36:15 -05:00
220d4672df
add all the known TextureFormat ( #474 )
2018-05-28 19:26:17 -04:00
7ddc872b52
GPU: Implemented the A1B5G5R5 texture format (0x14)
2018-05-27 09:02:05 -05:00
c079cf4eec
GPU: Implement the A2BGR10 texture format.
2018-04-21 17:32:25 -05:00
2985056340
GPU: Implemented the B5G6R5 format.
2018-04-18 18:16:45 -05:00
6b63aaa5b4
GPU: Allow using a configurable block height when unswizzling textures.
2018-04-18 12:52:51 -05:00
db5f2bfa7e
GPU/TIC: Added the pitch and block height fields to the TIC structure.
2018-04-18 11:38:39 -05:00
9df8e924fb
texture: Add missing formats.
2018-04-17 21:41:36 -04:00
dcc27d6dc1
GPU: Assert when finding a texture with a format type other than UNORM.
2018-04-06 20:44:46 -06:00
ad1810e895
Textures: Added a helper function to know if a texture is blocklinear or pitch.
2018-04-06 20:40:23 -06:00
56e2013c1f
GPU: Added the TSC structure. It contains information about the sampler.
2018-03-26 15:45:05 -05:00
6afe9e0105
GPU: Added more fields to the TIC structure.
2018-03-26 15:44:20 -05:00