James Rowe
cf9c94d401
Address review and fix broken yuzu-tester build
2020-03-25 23:32:42 -06:00
ReinUsesLisp
46791c464a
shader/conversion: Fix F2F rounding operations with different sizes
...
Rounding operations only matter when the conversion size of source and
destination is the same, i.e. .F16.F16, .F32.F32 and .F64.F64.
When there is a mismatch (.F16.F32), these bits are used for IEEE
rounding, we don't emulate this because GLSL and SPIR-V don't support
configuring it per operation.
2020-03-26 01:58:49 -03:00
ReinUsesLisp
7617e88fb2
gl_rasterizer: Update stencil test regardless of it being disabled
2020-03-26 01:08:14 -03:00
ReinUsesLisp
c310cef615
gl_rasterizer: Synchronize stencil testing on clears
2020-03-26 00:51:47 -03:00
bunnei
23c7dda710
Merge pull request #3544 from makigumo/myfork/patch-2
...
xmad: fix clang build error
2020-03-25 19:29:16 -04:00
bunnei
e6aff11057
Merge pull request #3520 from ReinUsesLisp/legacy-varyings
...
gl_shader_decompiler: Implement legacy varyings
2020-03-25 19:27:51 -04:00
James Rowe
282adfc70b
Frontend/GPU: Refactor context management
...
Changes the GraphicsContext to be managed by the GPU core. This
eliminates the need for the frontends to fool around with tricky
MakeCurrent/DoneCurrent calls that are dependent on the settings (such
as async gpu option).
This also refactors out the need to use QWidget::fromWindowContainer as
that caused issues with focus and input handling. Now we use a regular
QWidget and just access the native windowHandle() directly.
Another change is removing the debug tool setting in FrameMailbox.
Instead of trying to block the frontend until a new frame is ready, the
core will now take over presentation and draw directly to the window if
the renderer detects that its hooked by NSight or RenderDoc
Lastly, since it was in the way, I removed ScopeAcquireWindowContext and
replaced it with a simple subclass in GraphicsContext that achieves the
same result
2020-03-24 21:03:42 -06:00
Fernando Sahmkow
497f593525
Merge pull request #3543 from ReinUsesLisp/gl-depth-range
...
gl_rasterizer: Use transformed viewport for depth ranges
2020-03-23 12:00:21 -04:00
makigumo
5a5c6d4ed8
xmad: fix clang build error
2020-03-23 00:09:31 +01:00
namkazy
fc37672f26
apply replay logic to all writes. remove replay from MacroInterpreter::Send (@fincs)
2020-03-22 22:25:44 +07:00
namkazy
f66743cd0c
maxwell_3d: change declaration order
2020-03-22 13:41:16 +07:00
namkazy
d4e93cf38c
maxwell_3d: init shadow_state
2020-03-22 13:35:11 +07:00
ReinUsesLisp
bdcedc8506
gl_rasterizer: Use transformed viewport for depth ranges
...
Implement depth ranges using the transformed viewport instead of the
generic one. This matches the current Vulkan implementation but doesn't
support negative depth ranges. An update to glad is required for this.
2020-03-22 03:26:07 -03:00
namkazy
22f4268c2f
maxwell_3d: this seem more correct.
2020-03-22 12:02:54 +07:00
namkazy
7051dc1902
maxwell_3d: update comments for shadow ram usage
2020-03-22 11:35:26 +07:00
Nguyen Dac Nam
01af036c1f
marco_interpreter: write hw value when shadow ram requested
2020-03-22 10:53:41 +07:00
Nguyen Dac Nam
63c2635e6f
maxwell_3d: track shadow ram ctrl and hw reg value
2020-03-22 10:53:41 +07:00
Nguyen Dac Nam
dbfbe352e0
maxwell_3d: implement MME shadow RAM
2020-03-22 10:53:35 +07:00
bunnei
bdddbe2daa
Merge pull request #3505 from namkazt/patch-8
...
shader_decode: implement XMAD mode CSfu
2020-03-19 17:41:01 -04:00
ReinUsesLisp
38c1e77f01
vk_texture_cache: Silence misc warnings
2020-03-18 20:03:19 -03:00
ReinUsesLisp
b6b2e31e5e
vk_staging_buffer_pool: Silence unused constant warning
2020-03-18 20:03:19 -03:00
ReinUsesLisp
fc51ece7bf
vk_rasterizer: Remove unused variable
2020-03-18 20:03:19 -03:00
ReinUsesLisp
98d85cdc20
vk_pipeline_cache: Remove unused variable
2020-03-18 20:03:19 -03:00
ReinUsesLisp
dab450ec46
maxwell_to_vk: Sielence -Wswitch warning
2020-03-18 20:03:19 -03:00
ReinUsesLisp
351816ac38
gl_shader_decompiler: Remove deprecated function and its usages
2020-03-18 20:03:19 -03:00
ReinUsesLisp
acf328a71f
gl_rasterizer: Silence misc warnings
2020-03-18 20:03:19 -03:00
ReinUsesLisp
9f46066bda
kepler_compute: Remove unused variables
2020-03-18 20:03:19 -03:00
ReinUsesLisp
664fa4ea06
astc: Fix clang build issues
2020-03-18 04:30:25 -03:00
ReinUsesLisp
f5658a9fda
gl_shader_decompiler: Don't redeclare gl_VertexID and gl_InstanceID
2020-03-18 01:28:41 -03:00
Mat M
edb9cccb36
Merge pull request #3510 from FernandoS27/dirty-write
...
DirtyFlags: relax need to set render_targets as dirty
2020-03-17 17:29:22 -04:00
Mat M
f54d2d3114
Merge pull request #3509 from ReinUsesLisp/astc-opts
...
astc: General changes and optimizations
2020-03-17 17:28:49 -04:00
Mat M
d787856621
Merge pull request #3518 from ReinUsesLisp/scissor-clears
...
vk_rasterizer: Implement scissor clears and layered clears
2020-03-17 17:27:15 -04:00
Mat M
9fdfd58f9f
Merge pull request #3519 from ReinUsesLisp/int-formats
...
maxwell_to_vk: Implement RG32 and RGB32 integer vertex formats
2020-03-17 17:26:16 -04:00
bunnei
1c45c8086e
Merge pull request #3498 from ReinUsesLisp/texel-fetch-glsl
...
gl_shader_decompiler: Add layer component to texelFetch
2020-03-17 10:53:38 -04:00
ReinUsesLisp
53d673a7d3
renderer_opengl: Move some logic to an anonymous namespace
2020-03-16 04:03:34 -03:00
ReinUsesLisp
311d2fc768
renderer_opengl: Detect Nvidia Nsight as a debugging tool
...
Use getenv to detect Nsight.
2020-03-16 03:59:08 -03:00
Rodrigo Locatti
b16c8e0e8d
Merge pull request #3515 from ReinUsesLisp/vertex-vk-assert
...
vk_rasterizer: Fix vertex range assert
2020-03-15 21:26:54 -03:00
Rodrigo Locatti
7cc46a6faa
Merge pull request #3501 from ReinUsesLisp/rgba16-snorm
...
video_core: Implement RGBA16_SNORM
2020-03-15 21:24:53 -03:00
Rodrigo Locatti
ddafc99776
Merge pull request #3502 from namkazt/patch-3
...
shader_decode: Reimplement BFE instructions
2020-03-15 21:23:04 -03:00
Rodrigo Locatti
d64edf21bb
Merge pull request #3503 from makigumo/patch-2
...
maxwell_to_vk: add vertex format eA2B10G10R10UnormPack32
2020-03-15 21:21:38 -03:00
ReinUsesLisp
5afc397d52
gl_shader_decompiler: Implement legacy varyings
...
Legacy varyings are special attributes carried over in hardware from
the OpenGL 1 and OpenGL 2 days. These were generally used instead of the
generic attributes we use today. They are deprecated or removed from
most APIs, but Nvidia still ships them in hardware.
To implement these, this commit maps them 1:1 to OpenGL compatibility.
2020-03-15 21:03:59 -03:00
ReinUsesLisp
6442e02c5d
shader/shader_ir: Track usage in input attribute and of legacy varyings
2020-03-15 21:01:52 -03:00
ReinUsesLisp
8e6e55d6f8
shader/shader_ir: Fix clip distance usage stores
2020-03-15 20:53:14 -03:00
ReinUsesLisp
464bd5fad7
shader/shader_ir: Change declare output attribute to a switch
2020-03-15 20:49:35 -03:00
Rodrigo Locatti
86b1f15d9a
Merge pull request #3512 from bunnei/fix-renderdoc
...
renderer_opengl: Keep frames synchronized when using a GPU debugger.
2020-03-15 19:28:43 -03:00
ReinUsesLisp
52acb7f9a0
maxwell_to_vk: Implement RG32 and RGB32 integer vertex formats
2020-03-15 18:51:49 -03:00
ReinUsesLisp
71cc772988
vk_rasterizer: Implement layered clears
2020-03-15 18:37:19 -03:00
makigumo
f91046bf8d
vk_shader_decompiler: fix linux build
2020-03-15 18:00:14 +01:00
ReinUsesLisp
a7131af7d6
vk_rasterizer: Fix vertex range assert
...
End can be equal to start in CalculateVertexArraysSize. This is quite
common when the vertex size is zero.
2020-03-15 04:04:17 -03:00
ReinUsesLisp
8baf98e439
vk_rasterizer: Reimplement clears with vkCmdClearAttachments
2020-03-15 03:40:41 -03:00
bunnei
c5afe93dcc
renderer_opengl: Keep presentation frames in lock-step when GPU debugging.
...
- Fixes renderdoc with OpenGL renderer.
2020-03-14 17:45:01 -04:00
bunnei
4373fa8042
gl_device: Add option to check GL_EXT_debug_tool.
2020-03-14 17:39:29 -04:00
bunnei
4dfd5c84ea
Merge pull request #3508 from FernandoS27/page-table
...
PageTable: move backing addresses to a children class as the CPU page table does not need them.
2020-03-14 16:50:27 -04:00
Fernando Sahmkow
380fc8d2e1
DirtyFlags: relax need to set render_targets as dirty
...
The texture cache already takes care of setting a render target to dirty
when invalidated.
2020-03-14 11:47:33 -04:00
Fernando Sahmkow
c51dbf8038
Merge pull request #3500 from ReinUsesLisp/incompatible-types
...
texture_cache: Report incompatible textures as black
2020-03-14 09:49:05 -04:00
Fernando Sahmkow
41905ee467
Merge pull request #3499 from ReinUsesLisp/depth-2d-array
...
texture_cache/surface_params: Force depth=1 on 2D textures
2020-03-14 09:48:39 -04:00
Fernando Sahmkow
27cbb75e7c
PageTable: move backing addresses to a children class as the CPU page table does not need them.
...
This PR aims to reduce the memory usage in the CPU page table by moving
GPU specific parameters into a child class. This saves 1Gb of Memory for
most games.
2020-03-14 09:43:57 -04:00
ReinUsesLisp
42cb8f1124
astc: Fix typos from search and replace
2020-03-14 01:05:20 -03:00
ReinUsesLisp
9b8fb3c756
astc: Minor changes to InputBitStream
2020-03-14 00:45:54 -03:00
ReinUsesLisp
d71d7d917e
astc: Pass val in Replicate by copy
2020-03-14 00:13:58 -03:00
ReinUsesLisp
134f3ff9b4
astc: Call std::vector:reserve on decodedClolorValues to avoid reallocating
2020-03-14 00:09:56 -03:00
Nguyen Dac Nam
3287b1247d
clang-format
2020-03-14 10:07:40 +07:00
Nguyen Dac Nam
240d45830d
nit
2020-03-14 09:57:24 +07:00
ReinUsesLisp
3377b78ea7
astc: Call std::vector::reserve on texelWeightValues to avoid reallocating
2020-03-13 23:52:51 -03:00
ReinUsesLisp
801fd04f75
astc: Create a LUT at compile time for encoding values
2020-03-13 23:40:02 -03:00
ReinUsesLisp
e183820956
astc: Make IntegerEncodedValue a trivial structure
2020-03-13 22:49:28 -03:00
ReinUsesLisp
70a31eda62
astc: Make IntegerEncodedValue constructor constexpr
2020-03-13 22:36:45 -03:00
ReinUsesLisp
5ed377b989
astc: Make IntegerEncodedValue trivially copyable
2020-03-13 22:30:31 -03:00
ReinUsesLisp
e7d97605e8
astc: Rename C types to common_types
2020-03-13 22:28:51 -03:00
ReinUsesLisp
835a3d09c6
astc: Move Popcnt to an anonymous namespace and make it constexpr
2020-03-13 22:26:48 -03:00
ReinUsesLisp
731a9a322e
astc: Use common types instead of stdint.h integer types
2020-03-13 22:22:27 -03:00
ReinUsesLisp
d3dc4e399c
astc: Use 'enum class' instead of 'enum' for EIntegerEncoding
2020-03-13 22:20:12 -03:00
ReinUsesLisp
69c7a01f88
vk/gl_shader_decompiler: Silence assertion on compute
2020-03-13 18:33:05 -03:00
ReinUsesLisp
62560f1e63
vk_shader_decompiler: Fix default varying regression
2020-03-13 18:33:05 -03:00
ReinUsesLisp
afebdda203
maxwell_3d: Add padding words to XFB entries
...
Use INSERT_UNION_PADDING_WORDS instead of alignas to ensure a size
requirement.
2020-03-13 18:33:05 -03:00
ReinUsesLisp
4bc4851d45
gl_shader_decompiler: Fix implicit conversion errors
2020-03-13 18:33:05 -03:00
Rodrigo Locatti
47459f6a36
vk_shader_decompiler: Fix implicit type conversion
...
Co-Authored-By: Mat M. <mathew1800@gmail.com>
2020-03-13 18:33:05 -03:00
ReinUsesLisp
2fae1e6205
vk_rasterizer: Implement transform feedback binding zero
2020-03-13 18:33:05 -03:00
ReinUsesLisp
b67360c0f8
vk_shader_decompiler: Add XFB decorations to generic varyings
2020-03-13 18:33:05 -03:00
ReinUsesLisp
8d5bdcb17b
vk_device: Enable VK_EXT_transform_feedback when available
2020-03-13 18:33:05 -03:00
ReinUsesLisp
c320702092
vk_device: Shrink formatless capability name size
2020-03-13 18:33:05 -03:00
ReinUsesLisp
ae6189d7c2
shader/transform_feedback: Expose buffer stride
2020-03-13 18:33:05 -03:00
ReinUsesLisp
7acebd7eb6
vk_shader_decompiler: Use registry for specialization
2020-03-13 18:33:05 -03:00
ReinUsesLisp
8e9f23f393
gl_rasterizer: Implement transform feedback bindings
2020-03-13 18:33:04 -03:00
ReinUsesLisp
4d711dface
gl_shader_decompiler: Decorate output attributes with XFB layout
...
We sometimes have to slice attributes in different parts. This is needed
for example in instances where the game feedbacks 3 components but
writes 4 from the shader (something that is possible with
GL_NV_transform_feedback).
2020-03-13 18:33:04 -03:00
ReinUsesLisp
3dcaa84ba4
shader/transform_feedback: Add host API friendly TFB builder
2020-03-13 18:33:04 -03:00
Rodrigo Locatti
244fe13219
Merge branch 'master' into shader-purge
2020-03-13 16:44:06 -03:00
bunnei
b30b1f741d
Merge pull request #3491 from ReinUsesLisp/polygon-modes
...
gl_rasterizer: Implement polygon modes and fill rectangles
2020-03-13 10:08:57 -04:00
Nguyen Dac Nam
829f424618
nit & remove some optional param
2020-03-13 20:47:38 +07:00
Nguyen Dac Nam
a166217480
shader_decode: implement XMAD mode CSfu
2020-03-13 19:01:49 +07:00
makigumo
753bc2026f
fix formatting
2020-03-13 11:37:24 +01:00
makigumo
54681909be
maxwell_to_vk: add vertex format eA2B10G10R10UnormPack32
2020-03-13 11:26:13 +01:00
Nguyen Dac Nam
00607fe1e0
clang-format
2020-03-13 15:38:57 +07:00
Nguyen Dac Nam
325977c0c6
Apply suggestions from code review
...
Co-Authored-By: Mat M. <mathew1800@gmail.com>
2020-03-13 15:35:15 +07:00
Nguyen Dac Nam
70ff82f72d
shader_decode: BFE add ref of reverse parallel method.
2020-03-13 14:20:18 +07:00
Nguyen Dac Nam
96a4abe12d
shader_decode: implement BREV on BFE
...
Implement reverse parallel follow: https://graphics.stanford.edu/~seander/bithacks.html#ReverseParallel
2020-03-13 14:13:31 +07:00
Nguyen Dac Nam
93547cac68
shader_bytecode: update BFE instructions struct.
2020-03-13 12:52:16 +07:00
Nguyen Dac Nam
911c56ccef
node_helper: add IBitfieldExtract case
2020-03-13 12:50:32 +07:00
Nguyen Dac Nam
465ba30d08
shader_decode: Reimplement BFE instructions
2020-03-13 12:48:01 +07:00
ReinUsesLisp
e24197bb3f
gl_shader_decompiler: Initialize gl_Position on vertex shaders
2020-03-12 23:31:06 -03:00