Lioncash
6c41d1cd7e
video_core/ast: Make ShowCurrentState() take a string_view instead of std::string
...
Allows the function to be non-allocating in terms of the output string.
2019-10-05 09:14:27 -04:00
Lioncash
3c54edae24
video_core/ast: Eliminate variable shadowing warnings
2019-10-05 09:14:26 -04:00
Lioncash
5a0a9c7449
video_core/ast: Replace std::string with a constexpr std::string_view
...
Same behavior, but without the need to heap allocate
2019-10-05 09:14:26 -04:00
Lioncash
3a20d9734f
video_core/ast: Default the move constructor and assignment operator
...
This is behaviorally equivalent and also fixes a bug where some members
weren't being moved over.
2019-10-05 09:14:26 -04:00
Lioncash
43503a69bf
video_core/{ast, expr}: Organize forward declaration
...
Keeps them alphabetically sorted for readability.
2019-10-05 09:14:26 -04:00
Lioncash
50ad745585
video_core/expr: Supply operator!= along with operator==
...
Provides logical symmetry to the interface.
2019-10-05 09:14:26 -04:00
Lioncash
8eb1398f8d
video_core/{ast, expr}: Use std::move where applicable
...
Avoids unnecessary atomic reference count increments and decrements.
2019-10-05 09:14:23 -04:00
Lioncash
8e0c80f269
video_core/ast: Supply const accessors for data where applicable
...
Provides const equivalents of data accessors for use within const
contexts.
2019-10-05 08:22:03 -04:00
David
3728bbc22a
Merge pull request #2888 from FernandoS27/decompiler2
...
Shader_IR: Implement a full control flow decompiler for the shader IR.
2019-10-05 21:52:20 +10:00
ReinUsesLisp
fe7f20e659
maxwell_3d: Add dirty flags for depth bounds values
...
This is useful in Vulkan where we want to update depth bounds without
caring if it's enabled or disabled through vkCmdSetDepthBounds.
2019-10-05 04:07:47 +00:00
Fernando Sahmkow
538f5880ff
GL_Renderer: Remove lefting snippet.
2019-10-04 19:59:55 -04:00
Fernando Sahmkow
9f2719d1a4
Gl_Rasterizer: Protect CPU Memory mapping from multiple threads.
2019-10-04 19:59:53 -04:00
Fernando Sahmkow
3f104464de
Core: Wait for GPU to be idle before shutting down.
2019-10-04 19:59:53 -04:00
Fernando Sahmkow
ffc2ce89a0
Nvdrv: Do framelimiting only in the CPU Thread
2019-10-04 19:59:50 -04:00
Fernando Sahmkow
5b5e60ffec
GPU_Async: Correct fences, display events and more.
...
This commit uses guest fences on vSync event instead of an articial fake
fence we had.
It also corrects to keep signaling display events while loading the game
as the OS is suppose to send buffers to vSync during that time.
2019-10-04 19:59:48 -04:00
Fernando Sahmkow
ab47a660c8
Texture_Cache: Blit Deduction corrections and simplifications.
2019-10-04 18:53:47 -04:00
Fernando Sahmkow
2036504a82
TextureCache: Add the ability to deduce if two textures are depth on blit.
2019-10-04 18:53:46 -04:00
Fernando Sahmkow
e6eae4b815
Shader_ir: Address feedback
2019-10-04 18:52:57 -04:00
Fernando Sahmkow
3c09d9abe6
Shader_Ir: Address Feedback and clang format.
2019-10-04 18:52:57 -04:00
Fernando Sahmkow
507a9c6a40
vk_shader_decompiler: Correct Branches inside conditionals.
2019-10-04 18:52:56 -04:00
Fernando Sahmkow
000ad558dd
vk_shader_decompiler: Clean code and be const correct.
2019-10-04 18:52:55 -04:00
Fernando Sahmkow
7c756baa77
Shader_IR: clean up AST handling and add documentation.
2019-10-04 18:52:55 -04:00
Fernando Sahmkow
5ea740beb5
Shader_IR: Correct OutwardMoves for Ifs
2019-10-04 18:52:54 -04:00
Fernando Sahmkow
100a4bd988
vk_shader_compiler: Don't enclose branches with if(true) to avoid crashing AMD
2019-10-04 18:52:54 -04:00
Fernando Sahmkow
189a50bc2a
gl_shader_decompiler: Refactor and address feedback.
2019-10-04 18:52:53 -04:00
Fernando Sahmkow
b3c46d6948
Shader_IR: corrections and clang-format
2019-10-04 18:52:53 -04:00
Fernando Sahmkow
466cd52ad4
vk_shader_compiler: Correct SPIR-V AST Decompiling
2019-10-04 18:52:52 -04:00
Fernando Sahmkow
2e9a810423
Shader_IR: allow else derivation to be optional.
2019-10-04 18:52:52 -04:00
Fernando Sahmkow
ca9901867e
vk_shader_compiler: Implement the decompiler in SPIR-V
2019-10-04 18:52:51 -04:00
Fernando Sahmkow
0366c18d87
Shader_IR: mark labels as unused for partial decompile.
2019-10-04 18:52:51 -04:00
Fernando Sahmkow
47e4f6a52c
Shader_Ir: Refactor Decompilation process and allow multiple decompilation modes.
2019-10-04 18:52:50 -04:00
Fernando Sahmkow
38fc995f6c
gl_shader_decompiler: Implement AST decompiling
2019-10-04 18:52:50 -04:00
Fernando Sahmkow
6fdd501113
shader_ir: Declare Manager and pass it to appropiate programs.
2019-10-04 18:52:49 -04:00
Fernando Sahmkow
8be6e1c522
shader_ir: Corrections to outward movements and misc stuffs
2019-10-04 18:52:48 -04:00
Fernando Sahmkow
4fde66e609
shader_ir: Add basic goto elimination
2019-10-04 18:52:48 -04:00
Fernando Sahmkow
c17953978b
shader_ir: Initial Decompile Setup
2019-10-04 18:52:47 -04:00
ReinUsesLisp
69c806feb6
gl_rasterizer: Fix polygon offset units
...
For some reason hardware divides polygon offset units by two. This is
visible since drivers multiply the application requested polygon offset
by two.
2019-10-01 02:00:23 -03:00
ReinUsesLisp
f926230ab1
gl_shader_decompiler: Add tailing return for HUnpack2
2019-09-24 01:03:59 -03:00
ReinUsesLisp
25bfaffdff
gl_shader_decompiler: Fix clang build issues
2019-09-24 01:03:27 -03:00
bunnei
376f1a4432
Merge pull request #2869 from ReinUsesLisp/suld
...
shader/image: Implement SULD and fix SUATOM
2019-09-23 21:47:03 -04:00
David
9d69206cd0
Merge pull request #2870 from FernandoS27/multi-draw
...
Implement a MME Draw commands Inliner and correct host instance drawing
2019-09-22 23:13:02 +10:00
Fernando Sahmkow
822ca65d69
Merge pull request #2891 from FearlessTobi/rod-tex
...
video_core: Implement RGBX16F and lower Surface Copy log severity
2019-09-22 09:11:28 -04:00
David
3bfba23362
Merge pull request #2867 from ReinUsesLisp/configure-framebuffers-clean
...
gl_rasterizer: Remove unused code paths from ConfigureFramebuffers
2019-09-22 23:10:07 +10:00
Fernando Sahmkow
68f5aff64f
Maxwell3D: Corrections and refactors to MME instance refactor
2019-09-22 07:23:13 -04:00
FearlessTobi
01fc969a5f
Fix clang-format
2019-09-22 02:21:56 +02:00
FearlessTobi
366e900376
fermi_2d: Lower surface copy log severity to DEBUG
2019-09-22 02:18:57 +02:00
FearlessTobi
55d272efe6
video_core: Implement RGBX16F PixelFormat
2019-09-22 02:16:44 +02:00
Rodrigo Locatti
9286976948
Merge pull request #2878 from FernandoS27/icmp
...
shader_ir: Implement ICMP
2019-09-21 18:06:07 -03:00
ReinUsesLisp
44000971e2
gl_shader_decompiler: Use uint for images and fix SUATOM
...
In the process remove implementation of SUATOM.MIN and SUATOM.MAX as
these require a distinction between U32 and S32. These have to be
implemented with imageCompSwap loop.
2019-09-21 17:33:52 -03:00
ReinUsesLisp
675f23aedc
shader/image: Implement SULD and remove irrelevant code
...
* Implement SULD as float.
* Remove conditional declaration of GL_ARB_shader_viewport_layer_array.
2019-09-21 17:32:48 -03:00
ReinUsesLisp
4de0f1e1c8
shader_bytecode: Add SULD encoding
2019-09-21 17:31:46 -03:00
Fernando Sahmkow
527b841c15
Shader_IR: ICMP corrections and fixes
2019-09-21 14:28:03 -04:00
David
9ad42fb0cf
Merge pull request #2868 from ReinUsesLisp/fix-mipmaps
...
maxwell_to_gl: Fix mipmap filtering
2019-09-21 19:57:09 +10:00
David Marcec
01a4afee42
Mark DrawArrays as LOG_TRACE
...
There's no reason to clog logs with DrawArray.
2019-09-21 15:43:58 +10:00
bunnei
bbe82d62b0
Merge pull request #2846 from ReinUsesLisp/fixup-viewport-index
...
gl_shader_decompiler: Avoid writing output attribute when unimplemented
2019-09-20 17:11:20 -04:00
bunnei
88d857499b
Merge pull request #2855 from ReinUsesLisp/shfl
...
shader_ir/warp: Implement SHFL for Nvidia devices
2019-09-20 17:10:42 -04:00
Fernando Sahmkow
433e764bb0
Rasterizer: Correct introduced bug where a conditional render wouldn't stop a draw call from executing
2019-09-20 15:44:28 -04:00
Fernando Sahmkow
4b81d19a1a
Shader_IR: Implement ICMP.
2019-09-19 20:56:29 -04:00
Fernando Sahmkow
7761e44d18
Rasterizer: Refactor and simplify DrawBatch Interface.
2019-09-19 11:41:33 -04:00
Fernando Sahmkow
d2ea592ddb
Rasterizer: Address Feedback and conscerns.
2019-09-19 11:41:32 -04:00
Fernando Sahmkow
c17655ce74
Rasterizer: Refactor draw calls, remove deadcode and clean up.
2019-09-19 11:41:31 -04:00
Fernando Sahmkow
7606da5611
VideoCore: Corrections to the MME Inliner and removal of hacky instance management.
2019-09-19 11:41:29 -04:00
Fernando Sahmkow
ba02d564f8
Video Core: initial Implementation of InstanceDraw Packaging
2019-09-19 11:41:27 -04:00
bunnei
b31880dc5e
Merge pull request #2784 from ReinUsesLisp/smem
...
shader_ir: Implement shared memory
2019-09-18 16:26:05 -04:00
ReinUsesLisp
0526bf1895
shader_ir/warp: Implement SHFL
2019-09-17 17:44:07 -03:00
ReinUsesLisp
2dd6411753
maxwell_to_gl: Fix mipmap filtering
...
OpenGL texture filters follow GL_<texture_filter>_MIPMAP_<mipmap_filter>
but we were using them in the opposite way.
2019-09-17 03:32:24 -03:00
ReinUsesLisp
af809b491e
gl_rasterizer: Remove unused code paths from ConfigureFramebuffers
2019-09-17 02:50:42 -03:00
Fernando Sahmkow
393cc3ef2f
Merge pull request #2851 from ReinUsesLisp/srgb
...
renderer_opengl: Fix sRGB blits
2019-09-15 10:38:10 -04:00
Fernando Sahmkow
b8b1747704
Merge pull request #2824 from ReinUsesLisp/mme
...
Revert "Revert #2466 " and stub FirmwareCall 4
2019-09-15 06:17:04 -04:00
Rodrigo Locatti
193bfefce4
maxwell_3d: Update firmware 4 call stub commentary
2019-09-14 22:51:18 -03:00
Fernando Sahmkow
daae327e86
Merge pull request #2857 from ReinUsesLisp/surface-srgb
...
video_core/surface: Add function to detect sRGB surfaces
2019-09-14 03:53:21 -04:00
Fernando Sahmkow
18fac59050
Merge pull request #2858 from ReinUsesLisp/vk-device
...
vk_device: Add miscellaneous features and minor style changes
2019-09-14 03:52:06 -04:00
ReinUsesLisp
01d96e1136
vk_device: Add miscellaneous features and minor style changes
...
* Increase minimum Vulkan requirements
* Require VK_EXT_vertex_attribute_divisor
* Require depthClamp, samplerAnisotropy and largePoints features
* Search and expose VK_KHR_uniform_buffer_standard_layout
* Search and expose VK_EXT_index_type_uint8
* Search and expose native float16 arithmetics
* Track current driver with VK_KHR_driver_properties
* Query and expose SSBO alignment
* Query more image formats
* Improve logging overall
* Minor style changes
* Minor rephrasing of commentaries
2019-09-13 02:10:07 -03:00
ReinUsesLisp
99e23bd0fd
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
6b997c8f7f
renderer_opengl: Fix rebase mistake
2019-09-11 00:09:37 -03:00
ReinUsesLisp
36abf67e79
shader/image: Implement SUATOM and fix SUST
2019-09-10 20:22:31 -03:00
Fernando Sahmkow
e60d281a01
gl_rasterizer: Correct sRGB Fix regression
2019-09-10 19:31:42 -03:00
ReinUsesLisp
78574746bd
renderer_opengl: Fix sRGB blits
...
Removes the sRGB hack of tracking if a frame used an sRGB rendertarget
to apply at least once to blit the final texture as sRGB. Instead of
doing this apply sRGB if the presented image has sRGB.
Also enable sRGB by default on Maxwell3D registers as some games seem to
assume this.
2019-09-10 19:31:42 -03:00
bunnei
34b2c60f95
Merge pull request #2823 from ReinUsesLisp/shr-clamp
...
shader/shift: Implement SHR wrapped and clamped variants
2019-09-10 11:56:17 -04:00
bunnei
c7ec7bc1f5
Merge pull request #2810 from ReinUsesLisp/mme-opt
...
maxwell_3d: Avoid moving macro_params
2019-09-10 11:55:45 -04:00
ReinUsesLisp
17a9b0178d
gl_shader_decompiler: Avoid writing output attribute when unimplemented
2019-09-06 15:02:12 -03:00
ReinUsesLisp
1f43e5296f
gl_shader_decompiler: Keep track of written images and mark them as modified
2019-09-05 23:26:05 -03:00
ReinUsesLisp
7228e22098
texture_cache: Minor changes
2019-09-05 23:25:15 -03:00
ReinUsesLisp
322d0200c8
gl_rasterizer: Apply textures and images state
2019-09-05 20:35:51 -03:00
ReinUsesLisp
80ec2feee8
gl_rasterizer: Add samplers to compute dispatches
2019-09-05 20:35:51 -03:00
ReinUsesLisp
954fc02fdd
gl_rasterizer: Minor code changes
2019-09-05 20:35:51 -03:00
ReinUsesLisp
04cdecb7a1
gl_state: Split textures and samplers into two arrays
2019-09-05 20:35:51 -03:00
ReinUsesLisp
6170337001
gl_rasterizer: Implement image bindings
2019-09-05 20:35:51 -03:00
ReinUsesLisp
5edf24b510
gl_state: Add support for glBindImageTextures
2019-09-05 20:35:51 -03:00
ReinUsesLisp
2424eefad2
texture_cache: Pass TIC to texture cache
2019-09-05 20:35:51 -03:00
ReinUsesLisp
3a450c1395
kepler_compute: Implement texture queries
2019-09-05 20:35:51 -03:00
ReinUsesLisp
2e5b5c2358
gl_rasterizer: Split SetupTextures
2019-09-05 20:35:51 -03:00
Fernando Sahmkow
4ee9949639
Merge pull request #2804 from ReinUsesLisp/remove-gs-special
...
gl_shader_cache: Remove special casing for geometry shaders
2019-09-05 16:03:46 -04:00
bunnei
03badbdd9b
Merge pull request #2833 from ReinUsesLisp/fix-stencil
...
gl_rasterizer: Fix stencil testing
2019-09-05 15:27:31 -04:00
ReinUsesLisp
0f7b813d65
gl_shader_decompiler: Implement shared memory
2019-09-05 01:40:24 -03:00
ReinUsesLisp
4de04eba39
shader_ir: Implement LD_S
...
Loads from shared memory.
2019-09-05 01:38:37 -03:00
ReinUsesLisp
f17415d431
shader_ir: Implement ST_S
...
This instruction writes to a memory buffer shared with threads within
the same work group. It is known as "shared" memory in GLSL.
2019-09-05 01:38:37 -03:00
David
d34fa7c4fa
Merge pull request #2802 from ReinUsesLisp/hsetp2-pred
...
half_set_predicate: Fix HSETP2 predicate assignments
2019-09-05 12:26:39 +10:00
ReinUsesLisp
6177cbdbe1
gl_shader_decompiler: Fixup slow path
2019-09-04 15:03:51 -03:00
ReinUsesLisp
7bbc98cfc3
gl_rasterizer: Fix stencil testing
...
* Fix stencil dirty flags tracking when stencil is disabled
* Attach stencil on clears (previously it only attached depth)
* Attach stencil on drawing regardless of stencil testing being enabled
2019-09-04 01:59:09 -03:00