ReinUsesLisp
29e7c76d66
gl_rasterizer: Remove default clip distance
2018-11-18 23:57:52 -03:00
Rodolfo Bogado
4d1a0a24cc
drop support for non separate alpha as it seems to cause issues in some games
2018-11-18 03:44:48 -03:00
Rodolfo Bogado
81a9c5fe6f
fix sampler configuration, thanks to Marcos for his investigation
2018-11-17 19:59:34 -03:00
Rodolfo Bogado
b312cca756
small type fix
2018-11-17 19:59:34 -03:00
Rodolfo Bogado
5297495c87
small fix for alphaToOne bit location
2018-11-17 19:59:34 -03:00
Rodolfo Bogado
e69eb3c760
fix for gcc compilation
2018-11-17 19:59:34 -03:00
Rodolfo Bogado
53b4a1af0f
add AlphaToCoverage and AlphaToOne
2018-11-17 19:59:34 -03:00
Rodolfo Bogado
8ed7e1af2c
add support for fragment_color_clamp
2018-11-17 19:59:33 -03:00
Rodolfo Bogado
02c22a3440
add missing MirrorOnceBorder support where supported
2018-11-17 19:59:33 -03:00
Rodolfo Bogado
1d60bb6544
set border color not depending on the wrap mode
...
only enable color mask for the first framebuffer id independent blending is disabled
2018-11-17 19:59:33 -03:00
Rodolfo Bogado
6a2aa6dbdb
set default value for point size register
2018-11-17 19:59:33 -03:00
Rodolfo Bogado
1881e86c43
fix viewport and scissor behavior
2018-11-17 19:59:32 -03:00
Markus Wick
97f5c4ffd3
gl_rasterizer: Skip VB upload if the state is clean.
2018-11-17 14:28:54 +01:00
Frederic Laing
7a400e2191
textures/decoders: Replace magic numbers
2018-11-17 01:55:28 +01:00
bunnei
405dd03dae
Merge pull request #1700 from FreddyFunk/cleanup
...
gl_rasterizer_chache: Minor cleanup
2018-11-16 07:07:30 -08:00
bunnei
241646f423
Merge pull request #1701 from FreddyFunk/decoders
...
textures/decoders: Minor cleanup
2018-11-16 07:07:11 -08:00
bunnei
0b701751da
Merge pull request #1676 from lioncash/warn
...
gl_state: Amend compilation warnings
2018-11-16 07:00:03 -08:00
Frederic Laing
95d3965f31
textures/decoders: Minor cleanup
2018-11-15 21:04:17 +01:00
Frederic Laing
3844b5c0c5
gl_rasterizer_chache: Minor cleanup
2018-11-15 20:10:05 +01:00
bunnei
8a537a2021
Merge pull request #1637 from FernandoS27/cache
...
Improved GPU Caches lookup Speed
2018-11-14 19:07:52 -08:00
bunnei
3bd503d59c
Merge pull request #1662 from FreddyFunk/CopySurface-Optimization
...
gl_rasterizer_cache: CopySurface optimization
2018-11-13 18:58:12 -08:00
bunnei
d2b2b05b6a
Merge pull request #1685 from lioncash/base
...
video_core/renderer_base: Remove GL include from the renderer base class files
2018-11-13 18:53:59 -08:00
Lioncash
4ed9ef15c4
video_core/renderer_base: Remove GL include from the renderer base class files
...
Keeps the base class source files implementation-agnostic.
2018-11-13 14:38:13 -05:00
Frederic L
ab362aa7e5
gl_rasterizer: Minor cleanup
...
Minor code cleanup from unaddressed feedback in #1654
2018-11-13 14:07:23 +01:00
Lioncash
9a0fb7d9fb
gl_state: Amend compilation warnings
...
Makes float -> integral conversions explicit via casts and also silences
a sign conversion warning.
2018-11-13 07:10:40 -05:00
bunnei
65bd03d74c
Merge pull request #1628 from greggameplayer/Texture2DArray
...
Implement SurfaceTarget Texture2DArray
2018-11-12 21:13:47 -08:00
greggameplayer
c8b3f09876
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
2c6efda235
Merge pull request #1660 from Tinob/master
...
Map more missing opengl states
2018-11-11 19:58:16 -08:00
bunnei
a264fac943
Merge pull request #1664 from FreddyFunk/cast2
...
gl_rasterizer: Fix compiler warnings
2018-11-11 12:18:29 -08:00
Rodolfo Bogado
72b1fae984
Use core extensions when available to set max anisotropic filtering level
2018-11-11 16:36:53 -03:00
Rodolfo Bogado
4e6c64bf8d
Improve state management by splitting some of the states id separated function to avoid a full apply overhead
2018-11-11 16:36:53 -03:00
Rodolfo Bogado
4a6eff3b7b
Try to fix problems with stencil test in some games, relax translation to opengl enums to avoid crashing and only generate logs of the errors.
2018-11-11 16:31:00 -03:00
Rodolfo Bogado
e9610ec0dd
set sampler max lod, min lod, lod bias and max anisotropy
2018-11-11 16:31:00 -03:00
FernandoS27
3088e36237
Improved GPU Caches lookup Speed
2018-11-11 12:53:25 -04:00
bunnei
eaee73f95d
Merge pull request #1669 from ReinUsesLisp/fixup-gs
...
gl_shader_decompiler: Guard out of bound geometry shader input reads
2018-11-11 08:28:20 -08:00
bunnei
c82bccab56
Merge pull request #1663 from lioncash/raster
...
rasterizer_cache: Remove reliance on the System singleton
2018-11-11 08:20:27 -08:00
bunnei
1916213311
Merge pull request #1648 from FernandoS27/texs-3-array
...
Implement 3 coordinate array in TEXS instruction
2018-11-11 08:18:27 -08:00
bunnei
8ea6261547
Merge pull request #1654 from degasus/dirty_flags
...
gl_rasterizer: Skip VAO binding if the state is clean.
2018-11-11 08:17:57 -08:00
ReinUsesLisp
8d4bb10d44
gl_shader_decompiler: Guard out of bound geometry shader input reads
...
Geometry shaders follow a pattern that results in out of bound reads.
This pattern is:
- VSETP to predicate
- Use that predicate to conditionally set a register a big number
- Use the register to access geometry shaders
At the time of writing this commit I don't know what's the intent of
this number. Some drivers argue about these out of bound reads. To avoid
this issue, input reads are guarded limiting reads to the highest
posible vertex input of the current topology (e.g. points to 1 and
triangles to 3).
2018-11-10 03:10:50 -03:00
Frederic Laing
e2bf581e3a
gl_rasterizer_cache: Remove unnecessary memory allocation and copy in CopySurface
2018-11-08 16:50:09 +01:00
Frederic Laing
1d36aec267
gl_rasterizer: Fix compiler warnings
2018-11-08 13:33:30 +01:00
Lioncash
9046f764bf
rasterizer_cache: Remove reliance on the System singleton
...
Rather than have a transparent dependency, we can make it explicit in
the interface. This also gets rid of the need to put the core include in
a header.
2018-11-08 06:16:38 -05:00
Lioncash
9de523fd90
rasterizer_cache: Add missing virtual destructor to RasterizerCacheObject
...
Ensures that destruction will always do the right thing in any context.
2018-11-08 00:31:39 -05:00
Lioncash
29f082775b
gl_resource_manager: Amend clang-format discrepancies
...
Fixes the buildbot.
2018-11-08 00:23:45 -05:00
FernandoS27
d347623d6f
Correct issue where texturelod could not be applied to 2darrayshadow
2018-11-07 21:48:45 -04:00
FernandoS27
ad2f47b579
Implement 3 coordinate array in TEXS instruction
2018-11-07 17:04:30 -04:00
bunnei
81ff9e2473
Merge pull request #1630 from bunnei/fix-mapbufferex
...
memory_manager: Do not MapBufferEx over already in use memory.
2018-11-07 00:14:36 -08:00
bunnei
74bce4d68f
Merge pull request #1635 from Tinob/master
...
Implement multi-target viewports and blending
2018-11-07 00:11:49 -08:00
Markus Wick
359db6a673
gl_rasterizer: Skip VAO binding if the state is clean.
2018-11-06 22:31:33 +01:00
Markus Wick
0590dd2971
gl_rasterizer: Split VAO and VB setup functions.
2018-11-06 22:31:33 +01:00
greggameplayer
d3b9599b2d
Merge branch 'master' into Texture2DArray
2018-11-06 19:05:57 +01:00
Markus Wick
2c87f10267
gl_rasterizer_cache: Add profiles for Copy and Blit.
...
They were missed, and Copy is very high in profile here. It doesn't block the GPU,
but it stalls the driver thread. So with our bad GL instructions, this might block quite a while.
2018-11-06 17:45:32 +01:00
Markus Wick
7e59e907ef
gl_resource_manager: Profile creation and deletion.
2018-11-06 17:45:32 +01:00
Markus Wick
80e4dbdce7
gl_stream_buffer: Profile orphaning of stream buffer.
...
This serialize to the driver thread and so it may block for a while.
So if it is in the benchmark, we get noticed if it happens too often.
2018-11-06 17:45:32 +01:00
Markus Wick
54df9fe29e
gl_resource_manager: Split implementations in .cpp file.
...
Those implementations are quite costly, so there is no need to inline them to the caller.
Ressource deletion is often a performance bug, so in this way, we support to add breakpoints to them.
2018-11-06 14:40:39 +01:00
bunnei
cdb19e71fe
Merge pull request #1616 from FernandoS27/cube-array
...
Implement Cube Arrays
2018-11-05 15:28:48 -05:00
Rodolfo Bogado
19038db489
Add support to color mask to avoid issues in blending caused by wrong values in the alpha channel in some render targets.
2018-11-05 00:24:19 -03:00
Rodolfo Bogado
145ae36963
Implement multi-target viewports and blending
2018-11-04 20:49:48 -03:00
bunnei
38c1c500ab
Merge pull request #1625 from FernandoS27/astc
...
Implement ASTC Textures 5x5 and fix a bunch of ASTC texture problems
2018-11-04 18:47:26 -05:00
greggameplayer
9249fadb9e
correct syntax
2018-11-02 14:28:28 +01:00
greggameplayer
cb8e4a4633
Merge branch 'master' into Texture2DArray
2018-11-02 14:26:32 +01:00
FernandoS27
60a184455c
Fix ASTC Decompressor to support depth parameter
2018-11-01 19:22:12 -04:00
bunnei
4aa9779ae1
memory_manager: Do not MapBufferEx over already in use memory.
...
- This fixes rendering when changing areas in Super Mario Odyssey.
2018-11-01 18:57:59 -04:00
bunnei
cc1fe93297
Merge pull request #1623 from Tinob/master
...
Improve OpenGL state handling
2018-11-01 15:53:33 -04:00
FernandoS27
aee93f98f9
Fix ASTC formats
2018-11-01 13:08:19 -04:00
FernandoS27
31930a3334
Implemented ASTC 5x5
2018-11-01 13:06:24 -04:00
FernandoS27
678c18aa5c
Implement Cube Arrays
2018-11-01 11:56:19 -04:00
bunnei
9afcbba8e4
Merge pull request #1527 from FernandoS27/assert-flow
...
Assert Control Flow Instructions using Control Codes
2018-11-01 00:34:56 -04:00
bunnei
de0ab806df
maxwell_3d: Restructure macro upload to use a single macro code memory.
...
- Fixes an issue where macros could be skipped.
- Fixes rendering of distant objects in Super Mario Odyssey.
2018-10-31 23:29:21 -04:00
bunnei
86e70cf302
Merge pull request #1528 from FernandoS27/assert-control-codes
...
Assert Control Codes Generation on Shader Instructions
2018-10-31 22:34:18 -04:00
greggameplayer
9ae972ab4e
Implement SurfaceTarget Texture2DArray
...
( needed by Mario+Rabbids Kingdom Battle )
2018-10-31 04:29:15 +01:00
Rodolfo Bogado
aca218aea0
Improve OpenGL state handling
2018-10-30 21:19:04 -03:00
ReinUsesLisp
76754f5705
video_core: Move surface declarations out of gl_rasterizer_cache
2018-10-30 16:07:20 -03:00
FernandoS27
5bb80ab009
Assert Control Codes Generation
2018-10-30 13:37:55 -04:00
Frederic L
7a5eda5914
global: Use std::optional instead of boost::optional ( #1578 )
...
* get rid of boost::optional
* Remove optional references
* Use std::reference_wrapper for optional references
* Fix clang format
* Fix clang format part 2
* Adressed feedback
* Fix clang format and MacOS build
2018-10-30 00:03:25 -04:00
bunnei
c5a849212f
Merge pull request #1580 from FernandoS27/mm-impl
...
Implemented Mipmaps
2018-10-29 22:34:00 -04:00
bunnei
0270906dbf
Merge pull request #1613 from ReinUsesLisp/gl-utils
...
video_core: Move OpenGL specific utils to its renderer
2018-10-29 13:22:14 -04:00
bunnei
5d7167dfca
Merge pull request #1610 from slashiee/dxt1-alpha
...
renderer_opengl: Enable alpha channel for DXT1 texture format
2018-10-28 21:29:43 -04:00
ReinUsesLisp
80cbd81276
video_core: Move OpenGL specific utils to its renderer
2018-10-28 22:22:30 -03:00
Rodolfo Bogado
e8b565b239
renderer_opengl: Correct bpp value for ASTC_2D_8X5_SRGB
2018-10-28 20:52:57 -03:00
FernandoS27
3aa8b644a9
Assert Control Flow Instructions using Control Codes
2018-10-28 19:16:41 -04:00
FernandoS27
dde3094058
Fixed black textures, pixelation and we no longer require to auto-generate mipmaps
2018-10-28 19:00:49 -04:00
FernandoS27
f0e902a7d6
Fixed mipmap block autosizing algorithm
2018-10-28 19:00:05 -04:00
FernandoS27
87f8181405
Fixed Invalid Image size and Mipmap calculation
2018-10-28 19:00:04 -04:00
FernandoS27
f4432b5d0c
Fixed Block Resizing algorithm and Clang Format
2018-10-28 19:00:03 -04:00
FernandoS27
258f0f5c31
Implement Mip Filter
2018-10-28 19:00:01 -04:00
FernandoS27
dc85e3bff1
Zero out memory region of recreated surface before flushing
2018-10-28 19:00:00 -04:00
FernandoS27
bbf3b2da0c
Implement Mipmaps
2018-10-28 18:59:59 -04:00
Michael
635d1e5651
Enable alpha channel for DXT1 texture format
2018-10-28 14:11:04 -07:00
Tobias
351d5a2227
Correct bpp value for ASTC_2D_8X5
2018-10-28 19:49:10 +01:00
bunnei
aa1cf608ed
Merge pull request #1601 from FernandoS27/shader-precision
...
Improved Shader accuracy on Vertex and Geometry Shaders.
2018-10-28 13:06:21 -04:00
FernandoS27
e5ca097e32
Refactor precise usage and add FMNMX, MUFU, FMUL32 and FADD332
2018-10-28 11:38:40 -04:00
Rodolfo Bogado
0287b2be6d
Implement sRGB Support, including workarounds for nvidia driver issues and QT sRGB support
2018-10-28 01:13:55 -03:00
bunnei
d63f5acb15
Merge pull request #1594 from FreddyFunk/static-cast
...
gl_rasterizer_cache: Fix compiler warning
2018-10-27 21:09:06 -04:00
FernandoS27
d8d557df86
Improved Shader accuracy on Vertex and Geometry Shaders with FFMA, FMUL and FADD
2018-10-27 20:09:26 -04:00
bunnei
ed95ce6bb7
Merge pull request #1592 from bunnei/prim-restart
...
gl_rasterizer: Implement primitive restart.
2018-10-27 13:25:00 -04:00
FernandoS27
705300992e
Implement Default Block Height for each format
2018-10-27 10:17:39 -04:00
Frederic Laing
0bf24d310e
gl_rasterizer_cache: Fix compiler warning
2018-10-27 13:06:26 +02:00
bunnei
58444a0376
gl_rasterizer: Implement primitive restart.
2018-10-26 00:42:57 -04:00
bunnei
d278f25bda
Merge pull request #1533 from FernandoS27/lmem
...
Implemented Shader Local Memory
2018-10-26 00:16:25 -04:00
bunnei
949d9a7136
maxwell_3d: Add code for initializing register defaults.
2018-10-25 23:42:39 -04:00
bunnei
8cea598158
gl_rasterizer: Implement depth range.
2018-10-25 21:53:24 -04:00
bunnei
f7a173de6c
Merge pull request #1524 from FernandoS27/layers-fix
...
rasterizer: Fix Layered Textures Loading and Cubemaps
2018-10-25 00:29:18 -04:00
FernandoS27
ca142f35c0
Implemented LD_L and ST_L
2018-10-24 17:51:53 -04:00
FernandoS27
abefe29398
Implement Shader Local Memory
2018-10-24 17:50:43 -04:00
bunnei
69b35d7615
Merge pull request #1554 from FernandoS27/pointsize
...
Implement PointSize Output Attribute.
2018-10-24 17:38:38 -04:00
Lioncash
257b7bbfee
decoders: Remove unused variable within SwizzledData()
2018-10-23 23:51:13 -04:00
Lioncash
a97cdb5eb4
maxwell_3d: Remove unused variable within ProcessQueryGet()
2018-10-23 23:50:16 -04:00
FernandoS27
ed8ca608a0
Implement PointSize
2018-10-23 15:08:00 -04:00
FernandoS27
e0ea2f5f6e
Fixed Layered Textures Loading and Cubemaps
2018-10-23 14:27:36 -04:00
bunnei
5716496239
Merge pull request #1519 from ReinUsesLisp/vsetp
...
gl_shader_decompiler: Implement VSETP
2018-10-23 10:22:37 -04:00
bunnei
0f3d8c2574
Merge pull request #1539 from lioncash/dma
...
maxwell_dma: Silence compilation warnings
2018-10-23 10:22:12 -04:00
bunnei
75d807788c
Merge pull request #1470 from FernandoS27/alpha_testing
...
Implemented Alpha Test using Shader Emulation
2018-10-23 10:21:30 -04:00
ReinUsesLisp
7d6dca0d0a
gl_shader_decompiler: Implement VSETP
2018-10-23 01:07:20 -03:00
ReinUsesLisp
5dfb43531c
gl_shader_decompiler: Abstract VMAD into a video subset
2018-10-23 01:07:20 -03:00
bunnei
848a49112a
Merge pull request #1512 from ReinUsesLisp/brk
...
gl_shader_decompiler: Implement PBK and BRK
2018-10-23 00:01:38 -04:00
bunnei
496d155d7b
Merge pull request #1550 from FernandoS27/fmul32
...
Added Saturation to FMUL32I
2018-10-22 23:58:09 -04:00
bunnei
4cccfb4190
Merge pull request #1537 from lioncash/shader
...
gl_shader_decompiler: Minor changes
2018-10-22 22:49:49 -04:00
FernandoS27
259da93567
Added Saturation to FMUL32I
2018-10-22 20:22:15 -04:00
FernandoS27
8e1239fbc5
Assert that multiple render targets are not set while alpha testing
2018-10-22 15:35:45 -04:00
FernandoS27
59a004f915
Use standard UBO and fix/stylize the code
2018-10-22 15:07:33 -04:00
FernandoS27
17315cee16
Cache uniform locations and restructure the implementation
2018-10-22 15:07:32 -04:00
FernandoS27
bcb5b924fd
Remove SyncAlphaTest and clang format
2018-10-22 15:07:31 -04:00
FernandoS27
7b39107e3a
Added Alpha Func
2018-10-22 15:07:30 -04:00
FernandoS27
aa620c14af
Implemented Alpha Testing
2018-10-22 15:07:30 -04:00
bunnei
1226a5706e
Merge pull request #1547 from FernandoS27/fix-fset
...
Fixed FSETP and FSET
2018-10-22 12:53:47 -04:00
FernandoS27
5c5b4e8e7d
Fixed FSETP and FSET
2018-10-22 11:31:17 -04:00
FernandoS27
e2416bbd1f
Fixed VAOs Float types only returning GL_FLOAT in cases that they had to return GL_HALF_FLOAT
2018-10-22 09:27:00 -04:00
Lioncash
c1e5525fc6
engines/maxwell_*: Use nested namespace specifiers where applicable
...
These three source files are the only ones within the engines directory
that don't use nested namespaces. We may as well change these over to
keep things consistent.
2018-10-20 15:58:09 -04:00
Lioncash
d53c73adaa
maxwell_dma: Make variables const where applicable within HandleCopy()
...
These are never modified, so we can make that assumption explicit.
2018-10-20 15:56:01 -04:00
Lioncash
dd1ee39426
maxwell_dma: Make FlushAndInvalidate's size parameter a u64
...
This prevents truncation warnings at the lambda's usage sites.
2018-10-20 15:54:45 -04:00
Lioncash
08e574eec4
maxwell_dma: Remove unused variables in HandleCopy()
...
These pointer variables are never used, so we can get rid of them.
2018-10-20 15:53:24 -04:00
Lioncash
8a86c8d48b
gl_shader_decompiler: Allow std::move to function in SetPredicate
...
If the variable being moved is const, then std::move will always perform
a copy (since it can't actually move the data).
2018-10-20 14:25:15 -04:00
Lioncash
381baf783d
gl_shader_decompiler: Get rid of variable shadowing warnings
...
A variable with the same name was previously declared in an outer scope.
2018-10-20 14:22:37 -04:00
Lioncash
61ef8af1e2
gl_shader_decompiler: Fix a few comment typos
2018-10-20 14:19:28 -04:00
ReinUsesLisp
3ec795d95e
gl_shader_decompiler: Move position varying declaration back to gl_shader_gen
...
The intention of declaring them in gl_shader_decompiler was to be able
to use blocks to implement geometry shaders. But that wasn't needed in
the end and it caused issues when both vertex stages were being used,
resulting in a redeclaration of "position".
2018-10-20 02:19:30 -03:00
bunnei
b1f8bff7db
Merge pull request #1501 from ReinUsesLisp/half-float
...
gl_shader_decompiler: Implement H* instructions
2018-10-19 23:47:19 -04:00
bunnei
7e665c2721
GPU: Improved implementation of maxwell DMA (Subv).
2018-10-18 22:41:53 -04:00
bunnei
bcde71d4d9
decoders: Introduce functions for un/swizzling subrects.
2018-10-18 22:41:43 -04:00
bunnei
a5d853a9f8
GPU: Invalidate destination address of kepler_memory writes.
2018-10-18 22:41:13 -04:00
bunnei
6b333d862b
fermi_2d: Add support for more accurate surface copies.
2018-10-18 22:41:12 -04:00
bunnei
6acd8d166a
Merge pull request #1505 from FernandoS27/tex-3d
...
Implemented 3D Textures
2018-10-18 11:50:42 -04:00
ReinUsesLisp
41fb25349a
gl_shader_decompiler: Implement PBK and BRK
2018-10-17 21:30:45 -03:00
bunnei
77e2d68df7
Merge pull request #1489 from FernandoS27/fix-tlds
...
shader_decompiler: Fix TLDS
2018-10-17 18:58:38 -04:00
FernandoS27
caaa9914fd
Clang format and other fixes
2018-10-17 18:52:11 -04:00
FernandoS27
cb9fdc7a26
Implement Reinterpret Surface, to accurately blit 3D textures
2018-10-17 18:52:10 -04:00
FernandoS27
dbc34db6ce
Implement GetInRange in the Rasterizer Cache
2018-10-17 18:52:10 -04:00
FernandoS27
fd9e2d0073
Implement 3D Textures
2018-10-17 18:52:08 -04:00
bunnei
f912a82a8e
Merge pull request #1497 from bunnei/flush-framebuffers
...
Implement flushing in the rasterizer cache
2018-10-17 18:40:34 -04:00
bunnei
86dcf2942b
Merge pull request #1496 from FernandoS27/tex-array
...
Implement Arrays on Tex Instruction
2018-10-17 18:30:44 -04:00
bunnei
648b55c6b9
gl_rasterizer_cache: Remove unnecessary block_depth=1 on Flush.
2018-10-17 18:20:15 -04:00
bunnei
2a035a1f6f
gl_rasterizer_cache: Remove unnecessary temporary buffer with unswizzle.
2018-10-17 18:19:35 -04:00
bunnei
43b9494a0f
gl_rasterizer_cache: Use AccurateCopySurface for use_accurate_gpu_emulation.
2018-10-16 17:20:49 -04:00
bunnei
ee7c2dbf5a
config: Rename use_accurate_framebuffers -> use_accurate_gpu_emulation.
...
- This will be used as a catch-all for slow-but-accurate GPU emulation paths.
2018-10-16 17:02:29 -04:00
bunnei
91602de7f2
rasterizer_cache: Refactor to support in-order flushing.
2018-10-16 16:51:53 -04:00
bunnei
0e59291310
gl_rasterizer_cache: Refactor to only call GetRegionEnd on surface creation.
2018-10-16 11:31:02 -04:00
bunnei
949d7832fa
gl_rasterizer_cache: Only flush when use_accurate_framebuffers is enabled.
2018-10-16 11:31:02 -04:00
bunnei
5f79ba04bd
gl_rasterizer_cache: Separate guest and host surface size managment.
2018-10-16 11:31:01 -04:00
bunnei
58be4dff79
gl_rasterizer_cache: Rename GetGLBytesPerPixel to GetBytesPerPixel.
...
- This does not really have anything to do with OpenGL.
2018-10-16 11:31:01 -04:00
bunnei
cf7b46c101
gl_rasterizer_cache: Remove unused FlushSurface method.
2018-10-16 11:31:01 -04:00
bunnei
3afdfd7bfa
gl_rasterizer: Implement flushing.
2018-10-16 11:31:01 -04:00
bunnei
b4e29ccb81
gl_rasterizer_cache: Remove usage of Memory::Read/Write functions.
...
- These cannot be used within the cache, as they change cache state.
2018-10-16 11:31:00 -04:00
bunnei
4e9683e9d5
gl_rasterizer_cache: Clamp cached surface size to mapped GPU region size.
2018-10-16 11:31:00 -04:00
bunnei
37575eae65
memory_manager: Add a method for querying the end of a mapped GPU region.
2018-10-16 11:31:00 -04:00
bunnei
0be7e82289
rasterizer_cache: Reintroduce method for flushing.
2018-10-16 11:31:00 -04:00
bunnei
9b929e934b
gl_rasterizer_cache: Reintroduce code for handling swizzle and flush to guest RAM.
2018-10-16 11:30:59 -04:00
ReinUsesLisp
936c36a514
shader_bytecode: Add Control Code enum 0xf
...
Control Code 0xf means to unconditionally execute the instruction. This
value is passed to most BRA, EXIT and SYNC instructions (among others)
but this may not always be the case.
2018-10-15 15:36:47 -03:00
ReinUsesLisp
b461342a84
gl_shader_decompiler: Fixup style inconsistencies
2018-10-15 15:35:26 -03:00
ReinUsesLisp
27916764b1
gl_rasterizer: Silence implicit cast warning in glBindBufferRange
2018-10-15 15:26:50 -03:00
ReinUsesLisp
6312eec5ef
gl_shader_decompiler: Implement HSET2_R
2018-10-15 02:55:51 -03:00
ReinUsesLisp
4fc8ad67bf
gl_shader_decompiler: Implement HSETP2_R
2018-10-15 02:55:51 -03:00
ReinUsesLisp
3d65aa4caf
gl_shader_decompiler: Implement HFMA2 instructions
2018-10-15 02:55:51 -03:00
ReinUsesLisp
d93cdc2750
gl_shader_decompiler: Implement HADD2_IMM and HMUL2_IMM
2018-10-15 02:07:16 -03:00
ReinUsesLisp
d46e2a6e7a
gl_shader_decompiler: Implement non-immediate HADD2 and HMUL2 instructions
2018-10-15 02:04:31 -03:00
ReinUsesLisp
08d751d882
gl_shader_decompiler: Setup base for half float unpacking and setting
2018-10-15 01:58:30 -03:00
bunnei
14286f70f0
Merge pull request #1488 from Hexagon12/astc-types
...
video_core: Added ASTC 5x4; 8x5 types
2018-10-14 14:44:24 -04:00
FernandoS27
1d6559fbd3
Implement Arrays on Tex Instruction
2018-10-14 13:31:02 -04:00
FernandoS27
d880b77698
Fix TLDS
2018-10-13 22:14:25 -04:00
FernandoS27
331ce2942c
Shorten the implementation of 3D swizzle to only 3 functions
2018-10-13 20:58:00 -04:00
FernandoS27
1ff20d8538
Fix a Crash on Zelda BotW and Splatoon 2, and simplified LoadGLBuffer
2018-10-13 16:11:11 -04:00
FernandoS27
e0ca938b22
Propagate depth and depth_block on modules using decoders
2018-10-13 15:25:18 -04:00
FernandoS27
d4ae43f9c1
Remove old Swizzle algorithms and use 3d Swizzle
2018-10-13 15:25:17 -04:00
FernandoS27
4d959c6bdc
Implement Precise 3D Swizzle
2018-10-13 15:25:16 -04:00
FernandoS27
736db284d2
Implement Fast 3D Swizzle
2018-10-13 15:25:15 -04:00
Hexagon12
cbf723896f
Added ASTC 5x4; 8x5
2018-10-13 17:10:26 +03:00
FernandoS27
97b6405a17
Implemented helper function to correctly calculate a texture's size
2018-10-12 14:21:53 -04:00
ReinUsesLisp
17290a4416
gl_shader_decompiler: Implement VMAD
2018-10-11 04:15:10 -03:00
bunnei
6d82c4adf9
Merge pull request #1458 from FernandoS27/fix-render-target-block-settings
...
Fixed block height settings for RenderTargets and Depth Buffers
2018-10-10 21:24:07 -04:00
bunnei
03ec936ca0
Merge pull request #1460 from FernandoS27/scissor_test
...
Implemented Scissor Testing
2018-10-10 12:04:10 -04:00
bunnei
ee1b204749
Merge pull request #1425 from ReinUsesLisp/geometry-shaders
...
gl_shader_decompiler: Implement geometry shaders
2018-10-10 11:51:29 -04:00
FernandoS27
5f4ee6f0c8
Add memory Layout to Render Targets and Depth Buffers
2018-10-09 22:28:19 -04:00
FernandoS27
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
Lioncash
6e27c5d4d1
gl_shader_decompiler: Remove unused variables in TMML's implementation
...
Given "y" isn't always used, but "x" is, we can rearrange this to avoid
unused variable warnings by changing the names of op_a and op_b
2018-10-09 15:44:37 -04:00
FernandoS27
be97fc884d
Implement Scissor Test
2018-10-08 21:36:23 -04:00
FernandoS27
30ff42b8cc
Assert Scissor tests
2018-10-08 20:49:36 -04:00
ReinUsesLisp
7c2d6ef210
gl_shader_decompiler: Move position varying location from 15 to 0 and apply an offset
2018-10-07 17:36:00 -03:00
ReinUsesLisp
ee4d538850
gl_shader_decompiler: Implement geometry shaders
2018-10-07 17:36:00 -03:00
ReinUsesLisp
4d0c682468
video_core: Allow LabelGLObject to use extra info on any object
2018-10-07 17:27:49 -03:00
bunnei
2c0b0ad50d
Merge pull request #1446 from bunnei/fast_fermi_copy
...
gl_rasterizer: Implement accelerated Fermi2D copies.
2018-10-06 23:18:52 -04:00
bunnei
1cc5e6e9bc
Merge pull request #1437 from FernandoS27/tex-mode2
...
Implemented Depth Compare, Shadow Samplers and Texture Processing Modes for TEXS and TLDS
2018-10-06 23:14:27 -04:00
ReinUsesLisp
0ecd181cca
gl_rasterizer: Fixup undefined behaviour in SetupDraw
2018-10-06 23:22:48 -03:00
FernandoS27
752faff2bc
Implemented Depth Compare and Shadow Samplers
2018-10-06 11:27:54 -04:00
bunnei
9aec85d39c
fermi_2d: Implement simple copies with AccelerateSurfaceCopy.
2018-10-06 03:20:04 -04:00
bunnei
011cf77796
gl_rasterizer: Add rasterizer cache code to handle accerated fermi copies.
2018-10-06 03:20:04 -04:00
bunnei
749aef3dd0
gl_rasterizer_cache: Implement a simpler surface copy using glCopyImageSubData.
2018-10-06 03:20:04 -04:00
ReinUsesLisp
3e2380327a
gl_rasterizer: Implement quads topology
2018-10-04 00:03:44 -03:00
FernandoS27
f664437ae8
Implemented Texture Processing Modes in TEXS and TLDS
2018-10-03 08:41:12 -04:00
ReinUsesLisp
1835911425
gl_rasterizer: Fixup unassigned point sizes
2018-10-01 01:18:24 -03:00
bunnei
bc679c9b8c
Merge pull request #1330 from raven02/tlds
...
TLDS: Add 1D sampler
2018-09-30 21:53:38 -04:00
bunnei
df3799a008
gl_rasterizer_cache: Fixes to how we do render to cubemap.
...
- Fixes issues with Splatoon 2.
2018-09-30 15:10:14 -04:00
bunnei
29782273ec
gl_rasterizer_cache: Add check for array rendering to cubemap texture.
2018-09-30 14:31:58 -04:00
bunnei
f543b43fd0
gl_rasterizer_cache: Implement render to cubemap.
2018-09-30 14:31:58 -04:00
bunnei
15cc729ebd
gl_shader_decompiler: TEXS: Implement TextureType::TextureCube.
2018-09-30 14:31:58 -04:00
bunnei
ed2e0e85c9
gl_rasterizer_cache: Add support for SurfaceTarget::TextureCubemap.
2018-09-30 14:31:58 -04:00
bunnei
871580dcd8
gl_rasterizer_cache: Implement LoadGLBuffer for Texture2DArray.
2018-09-30 14:31:57 -04:00
bunnei
a9aa1db552
gl_rasterizer_cache: Update BlitTextures to support non-Texture2D ColorTexture surfaces.
2018-09-30 14:31:57 -04:00
bunnei
2e1cdde994
gl_rasterizer_cache: Track texture target and depth in the cache.
2018-09-30 14:31:57 -04:00
bunnei
fefb003b23
gl_rasterizer_cache: Workaround for Texture2D -> Texture2DArray scenario.
2018-09-30 14:31:56 -04:00
bunnei
ce452049d3
gl_rasterizer_cache: Keep track of surface 2D size separately from total size.
2018-09-30 14:31:56 -04:00
raven02
b92b4bbeaf
Fix trailing whitespace
2018-09-30 23:51:10 +08:00
bunnei
fe5962e073
Merge pull request #1411 from ReinUsesLisp/point-size
...
video_core: Implement point_size and add point state sync
2018-09-29 11:58:39 -04:00
bunnei
8d8366b602
Merge pull request #1406 from ReinUsesLisp/multibind-samplers
...
gl_state: Pack sampler bindings into a single ARB_multi_bind
2018-09-29 10:55:45 -04:00
ReinUsesLisp
e3e51d3ddb
video_core: Implement point_size and add point state sync
2018-09-28 02:13:29 -03:00
ReinUsesLisp
b8f1506aa5
gl_state: Pack sampler bindings into a single ARB_multi_bind
2018-09-28 02:04:22 -03:00
bunnei
62048edc15
Merge pull request #1377 from FernandoS27/faster-swizzle
...
Improved Fast Swizzle and Legacy Swizzle
2018-09-27 10:00:04 -04:00
ReinUsesLisp
ab65fde9f4
video_core: Add asserts for CS, TFB and alpha testing
...
Add asserts for compute shader dispatching, transform feedback being
enabled and alpha testing. These have in common that they'll probably break
rendering without logging.
2018-09-25 21:07:00 -03:00
David
9f3fc067bf
Added glObjectLabels for renderdoc for textures and shader programs ( #1384 )
...
* Added glObjectLabels for renderdoc for textures and shader programs
* Changed hardcoded "Texture" name to reflect the texture type instead
* Removed string initialize
2018-09-23 17:55:41 -04:00
greggameplayer
b91e2d55f3
correct BC6H
2018-09-23 19:17:22 +02:00
bunnei
fb9f273e90
Merge pull request #1380 from lioncash/const
...
shader_bytecode: Make operator== and operator!= of IpaMode const qualified
2018-09-22 01:37:36 -04:00
bunnei
73eea61614
Merge pull request #1382 from lioncash/inc
...
gl_state: Remove unused type alias
2018-09-22 01:36:21 -04:00
Lioncash
90746c33c7
gl_state: Remove unused type alias
...
This isn't used anywhere within the header, so we can remove it, along
with the include that was previously necessary. This also uncovers an
indirect include in the cpp file for the assertion macros.
2018-09-21 18:22:43 -04:00
Lioncash
a8f5fd787f
shader_bytecode: Lay out the Ipa-related enums better
...
This is more consistent with the surrounding enums.
2018-09-21 16:17:31 -04:00
Lioncash
272517cf7e
shader_bytecode: Make operator== and operator!= of IpaMode const qualified
...
These don't affect the state of the struct and can be const member
functions.
2018-09-21 16:17:27 -04:00
bunnei
4f186de069
Merge pull request #1379 from lioncash/bitwise
...
gl_stream_buffer: Fix use of bitwise OR instead of logical OR in Map()
2018-09-21 14:02:00 -04:00
FernandoS27
57b44200a2
Reverse stride align restriction on FastSwizzle due to lost performance
2018-09-21 12:09:59 -04:00
FernandoS27
d2dd1289bd
Join both Swizzle methods within one interface function
2018-09-21 11:42:34 -04:00
FernandoS27
41c6c4593a
Standarized Legacy Swizzle to look alike FastSwizzle and use a Swizzling Table instead
2018-09-21 11:34:54 -04:00
FernandoS27
f020319a45
Remove same output bpp restriction on FastSwizzle
2018-09-21 11:10:44 -04:00
FernandoS27
68aaa83836
Improved Legacy Swizzler to be better documented and work better
2018-09-21 10:57:12 -04:00
Lioncash
ba02dd9ebc
gl_stream_buffer: Fix use of bitwise OR instead of logical OR in Map()
...
This was very likely intended to be a logical OR based off the
conditioning and testing of inversion in one case.
Even if this was intentional, this is the kind of non-obvious thing one
should be clarifying with a comment.
2018-09-21 07:59:03 -04:00
Subv
9cd5c61fcf
RasterizerGL: Use the correct framebuffer when clearing via the CLEAR_BUFFERS register.
...
Previously we were clearing the default backbuffer framebuffer.
Found thanks to a Piglit test :)
2018-09-20 22:31:53 -05:00
FernandoS27
bf2f2a715f
Improved fast swizzle and removed restrictions to it
2018-09-20 23:06:53 -04:00
raven02
c8f9bbbf85
Merge branch 'master' into tlds
2018-09-19 19:53:11 +08:00
Markus Wick
f465e4aaf2
gl_rasterizer: Fix StartAddress handling with indexed draw calls.
...
We uploaded the wrong data before. So the offset on the host GPU pointer may work for the first vertices, the last ones run out bounds.
Let's just offset the upload instead.
2018-09-19 09:22:30 +02:00
bunnei
bd88d4108f
Merge pull request #1342 from lioncash/trunc
...
gl_shader_decompiler: Avoid truncation warnings within LD_A and ST_A code
2018-09-18 22:11:48 -04:00
bunnei
0284cbe7ec
Merge pull request #1279 from FernandoS27/csetp
...
shader_decompiler: Implemented (Partialy) Control Codes and CSETP
2018-09-18 22:10:48 -04:00
bunnei
6415f81bb8
Merge pull request #1299 from FernandoS27/texture-sanatize
...
shader_decompiler: Asserts for Texture Instructions
2018-09-18 22:10:09 -04:00
FernandoS27
567a5524b9
Implemented Internal Flags
2018-09-17 20:50:54 -04:00
Lioncash
9a8dbba1e5
gl_shader_decompiler: Avoid truncation warnings within LD_A and ST_A code
...
These are internally stored as u64 values, so using u32 here causes
truncation warnings. Instead, we can just use u64 and preserve the bit
width.
2018-09-17 19:25:55 -04:00
bunnei
fafc80d72e
Merge pull request #1290 from FernandoS27/shader-header
...
Implemented (Partialy) Shader Header
2018-09-17 18:53:14 -04:00