Cristallix
4738113f29
Suppress warnings from fields never used or never assigned (CS0169 and CS0649) ( #919 )
...
* chore : disable unwanted warnings and minor code cleanup
* chore : remove more warnings
* fix : reorder struct correctly
* fix : restore _isKernel and remove useless comment
* fix : copy/paste error
* fix : restore CallMethod call
* fix : whitespace
* chore : clean using
* feat : remove warnings
* fix : simplify warning removal on struct
* fix : revert fields deletion and code clean up
* fix : re-add RE value
* fix : typo
2020-04-21 07:59:59 +10:00
gdkchan
91fa1debd4
Report more realistic GPU timestamps when FastGpuTime is enabled ( #1139 )
2020-04-20 22:41:07 +10:00
Thog
644de99e86
Implement GPU syncpoints ( #980 )
...
* Implement GPU syncpoints
This adds support for GPU syncpoints on the GPU backend & nvservices.
Everything that was implemented here is based on my researches,
hardware testing of the GM20B and reversing of nvservices (8.1.0).
Thanks to @fincs for the informations about some behaviours of the pusher
and for the initial informations about syncpoints.
* syncpoint: address gdkchan's comments
* Add some missing logic to handle SubmitGpfifo correctly
* Handle the NV event API correctly
* evnt => hostEvent
* Finish addressing gdkchan's comments
* nvservices: write the output buffer even when an error is returned
* dma pusher: Implemnet prefetch barrier
lso fix when the commands should be prefetch.
* Partially fix prefetch barrier
* Add a missing syncpoint check in QueryEvent of NvHostSyncPt
* Address Ac_K's comments and fix GetSyncpoint for ChannelResourcePolicy == Channel
* fix SyncptWait & SyncptWaitEx cmds logic
* Address ripinperi's comments
* Address gdkchan's comments
* Move user event management to the control channel
* Fix mm implementation, nvdec works again
* Address ripinperi's comments
* Address gdkchan's comments
* Implement nvhost-ctrl close accurately + make nvservices dispose channels when stopping the emulator
* Fix typo in MultiMediaOperationType
2020-04-19 11:25:57 +10:00
mageven
4960ab85f8
Implement Depth Clamping ( #1120 )
...
* Implement Depth Clamping and add misc enums
* Fix formatting
2020-04-17 11:16:49 +10:00
mageven
dfecbbe1f4
Fix oversight in depth range initialization from PR #1093 ( #1112 )
2020-04-16 13:21:58 +10:00
mageven
468d8f841f
Simple GPU fixes ( #1093 )
...
* Implement RasterizeEnable
* Match viewport count to hardware
* Simplify ScissorTest tracking around Blits
* Disable RasterizerDiscard around Blits and track its state
* Read RasterizeEnable reg as bool and add doc
2020-04-07 19:19:45 +10:00
gdkchan
5b5239ab5b
Remove output interpolation qualifier ( #1070 )
2020-04-02 12:24:55 +11:00
Xpl0itR
12d49c37d2
Make max anisotropy configurable ( #1043 )
...
* Make max anisotropy configurable
* Move opengl command to opengl project
* Add GUI option
2020-03-31 08:38:52 +11:00
gdkchan
9948a7be53
Support constant attributes (with a value of zero) ( #1066 )
...
* Support constant attributes (with a value of zero)
* Remove extra line
2020-03-30 13:11:24 +11:00
gdkchan
ab4867505e
Implement GPU scissors ( #1058 )
...
* Implement GPU scissors
* Remove unused using
* Add missing changes for Clear
2020-03-29 14:02:58 +11:00
gdkchan
8e64984158
Support partial invalidation on texture access ( #1000 )
...
* Support partial invalidation on texture access
* Fix typo
* PR feedback
* Fix modified size clamping
2020-03-20 14:17:11 +11:00
gdkchan
ff2bac9c90
Implement MME shadow RAM ( #987 )
2020-03-13 12:30:26 +11:00
gdkchan
7e4d986a73
Support compute uniform buffers emulated with global memory ( #924 )
2020-02-11 01:10:05 +01:00
riperiperi
6db16b4110
Only enumerate cached textures that are modified when flushing. ( #918 )
...
* Only enumarate cached textures that are modified when flushing, rather than all of them.
* Remove locking.
* Add missing clear.
* Remove texture from modified list when data is disposed.
In case the game does not call either flush method at any point.
* Add ReferenceEqualityComparer from jD for the HashSet
2020-02-07 08:49:26 +11:00
riperiperi
a0e6647860
Compare shader code using a span instead of individual reads. ( #917 )
...
* Compare shader code using a span instead of individual reads.
* Add comment for new parameter.
* Remove unnecessary Math.Min
2020-02-03 20:11:22 +01:00
gdkchan
796e5d14b4
Use correct shader local memory size instead of a hardcoded size ( #914 )
...
* Use correct shader local size instead of a hardcoded size
* Remove unused uniform block
* Update XML doc
* Local memory size has 23 bits on maxwell
* Generate compute QMD struct from nv open doc header
* Remove dummy arrays when shared or local memory is not used, other improvements
2020-02-02 14:25:52 +11:00
gdkchan
f373f870f7
Support configurable point size ( #916 )
2020-02-02 10:19:46 +11:00
gdkchan
532ccf929a
Ignore exit flag on branch delay slot ( #899 )
2020-01-22 02:11:43 +01:00
Thog
d6b9babe1d
Keep the GUI alive when closing a game ( #888 )
...
* Keep the GUI alive when closing a game
Make HLE.Switch init when starting a game and dispose it when closing
the GlScreen.
This also make HLE in charge of disposing the audio and gpu backend.
* Address Ac_k's comments
* Make sure to dispose the Discord module and use GTK quit method
Also update Discord Precense when closing a game.
* Make sure to dispose MainWindow
* Address gdk's comments
2020-01-21 23:23:11 +01:00
gdkchan
a5e20a8fd1
Add sampler border color support on the GPU ( #893 )
2020-01-17 09:55:38 +01:00
gdkchan
b8e3909d80
Add a GetSpan method to the memory manager and use it on GPU ( #877 )
2020-01-13 10:27:50 +11:00
gdkchan
2bb39ff03e
Replace glFinish with barrier for WaitForIdle ( #878 )
2020-01-13 09:12:40 +11:00
Thog
29e8576b0d
MapBufferEx: take page size into account ( #873 )
...
Fix #744
2020-01-12 03:14:27 +01:00
gdkchan
80707f9311
Add runtime identifiers to new projects
2020-01-09 02:13:00 +01:00
gdkchan
29a825b43b
Address PR feedback
...
Removes a useless null check
Aligns some values to improve readability
2020-01-09 02:13:00 +01:00
gdkchan
18814d44b2
Address PR feedback
...
Add TODO comment for GL_EXT_polygon_offset_clamp
2020-01-09 02:13:00 +01:00
gdkchan
383452f5cf
Fix some shader disposal issues
2020-01-09 02:13:00 +01:00
gdkchan
a11f6f5235
Fix some spelling mistakes
...
Thanks to LDj3SNuD for spotting these
2020-01-09 02:13:00 +01:00
gdkchan
92703af555
Address PR feedback
2020-01-09 02:13:00 +01:00
gdkchan
0dbfe3c23e
Re-add NVDEC project (not integrated)
2020-01-09 02:13:00 +01:00
gdkchan
6e092c0558
More code cleanup
2020-01-09 02:13:00 +01:00
gdkchan
9bfb373bdf
Remove more unused code
2020-01-09 02:13:00 +01:00
gdkchan
59fdaa744b
GPU resource disposal
2020-01-09 02:13:00 +01:00
gdkchan
f7bcc884e4
Add XML documentation to Ryujinx.Graphics.Gpu
2020-01-09 02:13:00 +01:00
gdkchan
4a4e2f7c72
Add XML documentation to Ryujinx.Graphics.Gpu.Engine
2020-01-09 02:13:00 +01:00
gdkchan
d1c0a64e6a
Add XML documentation to Ryujinx.Graphics.Gpu.State
2020-01-09 02:13:00 +01:00
gdkchan
430faeb8ef
Add XML documentation to Ryujinx.Graphics.Gpu.Shader
2020-01-09 02:13:00 +01:00
gdkchan
e58b540c4e
Add XML documentation to Ryujinx.Graphics.Gpu.Memory
2020-01-09 02:13:00 +01:00
gdkchan
80ff2eab29
Change GPU errors to debug and reduce log messages
2020-01-09 02:13:00 +01:00
gdkchan
bacb278dc1
Fix typos pointed out by LDj3SNuD
2020-01-09 02:13:00 +01:00
gdkchan
ffaad0eaac
Fix missing S8 format on texture compatibility check
2020-01-09 02:13:00 +01:00
gdkchan
32764f9560
Add XML documentation to Ryujinx.Graphics.Gpu.Image
2020-01-09 02:13:00 +01:00
gdkchan
654e617fe7
Some code cleanup
2020-01-09 02:13:00 +01:00
gdkchan
af8498d679
Add basic error logging to the GPU
2020-01-09 02:13:00 +01:00
Alex Barney
d1ab9fb42c
ASTC optimizations ( #845 )
...
* ASTC optimizations
* Move code to Ryujinx.Common
* Support 3D textures
* Address feedback
* Remove ASTC logging
* Use stackalloc instead of a Buffer20 struct
* Code style and cleanup
* Respond to feedback
* Rearrange public/private property ordering
2020-01-09 02:13:00 +01:00
gdkchan
947e14d3be
Reimplement limited bindless textures support
2020-01-09 02:13:00 +01:00
gdkchan
647d0962df
Initialize GPU physical memory accessor from KProcess, to allow homebrew that never maps anything on the GPU to work
2020-01-09 02:13:00 +01:00
gdkchan
9d7a142a48
Support texture rectangle targets (non-normalized coords)
2020-01-09 02:13:00 +01:00
gdkchan
f2c85c5d58
Support non-constant texture offsets on non-NVIDIA gpus
2020-01-09 02:13:00 +01:00
gdkchan
3323a3a042
Use correct shared memory size (in words, not bytes)
2020-01-09 02:13:00 +01:00
gdkchan
ad3bc2531b
Ensure a valid shared memory size is used
2020-01-09 02:13:00 +01:00
gdkchan
66d91cbc6c
Use dispatch params shared memory size when available
2020-01-09 02:13:00 +01:00
gdkchan
0d9672f3ae
Use maximum shared memory size supported by hardware
2020-01-09 02:13:00 +01:00
gdkchan
375ee0ba96
Fix draw indexed flag not being cleared for instanced draws, also avoid state updates in the middle of a indexed draw
2020-01-09 02:13:00 +01:00
gdkchan
23b8a86d35
Support 3D ASTC textures (using 2D blocks)
2020-01-09 02:13:00 +01:00
gdkchan
7ce5584f9e
Support depth clip mode and disable shader fast math optimization on NVIDIA as a workaround for compiler bugs (?)
2020-01-09 02:13:00 +01:00
gdkchan
17fb11ddb9
Fix wrong maximum id on sampler pool in some cases
2020-01-09 02:13:00 +01:00
gdkchan
cb171f6ebf
Support shared color mask, implement more shader instructions
...
Support shared color masks (used by Nouveau and maybe the NVIDIA
driver).
Support draw buffers (also required by OpenGL).
Support viewport transform disable (disabled for now as it breaks some
games).
Fix instanced rendering draw being ignored for multi draw.
Fix IADD and IADD3 immediate shader encodings, that was not matching
some ops.
Implement FFMA32I shader instruction.
Implement IMAD shader instruction.
2020-01-09 02:13:00 +01:00
gdkchan
e25b7c9848
Initial support for the guest OpenGL driver (NVIDIA and Nouveau)
2020-01-09 02:13:00 +01:00
gdk
6a98c643ca
Add a pass to turn global memory access into storage access, and do all storage related transformations on IR
2020-01-09 02:13:00 +01:00
gdk
65428f5842
Fix shader code comparison method
2020-01-09 02:13:00 +01:00
gdk
d0c7732fe2
Optimize RangeList by not doing an allocation on every call to the Find methods
2020-01-09 02:13:00 +01:00
gdk
16d88c21fc
Improved and simplified window texture presentation
2020-01-09 02:13:00 +01:00
gdk
b2b2e04669
Small optimizations on texture and sampler pool invalidation
2020-01-09 02:13:00 +01:00
gdk
3ac023bb60
Correct ordering of compute buffer bind
2020-01-09 02:13:00 +01:00
gdk
79de8fd490
Share texture pool cache between graphics and compute
2020-01-09 02:13:00 +01:00
gdk
2437ccca0e
Separate sub-channel state
2020-01-09 02:13:00 +01:00
gdk
3ca675223a
Remove TranslatorConfig struct
2020-01-09 02:13:00 +01:00
gdk
6e399061ce
Invalidate shaders when they are modified
2020-01-09 02:13:00 +01:00
gdk
d274328c31
Fix image units bindings and shader dump in the presence of NOPs
2020-01-09 02:13:00 +01:00
gdk
fd196b3d19
Do not throw for invalid ASTC compressed textures
2020-01-09 02:13:00 +01:00
gdk
769c02235f
Add ATOMS, LDS, POPC, RED, STS and VOTE shader instructions, start changing the way how global memory is handled
2020-01-09 02:13:00 +01:00
gdk
1e8bc29f32
Use a more efficient range list on the buffer manager
2020-01-09 02:13:00 +01:00
gdk
3ab5c23f49
Add partial support for array of samplers, and add pass to identify them from bindless texture accesses
2020-01-09 02:13:00 +01:00
gdk
d786d8d2b9
Support copy of slices to 3D textures, remove old 3D render target layered render support, do not delete textures with existing views created from them
2020-01-09 02:13:00 +01:00
gdk
3bcc395253
Add shader support for the round mode on the F2F instruction, support mipmaps on ASTC compressed textures
2020-01-09 02:13:00 +01:00
gdk
f2e84ff566
Flush buffers on copies
2020-01-09 02:13:00 +01:00
gdk
8cba252b23
Add per-source type memory change tracking, simplified state change tracking, other fixes
2020-01-09 02:13:00 +01:00
gdk
1b7d955195
Initial support for image stores, support texture sample on compute
2020-01-09 02:13:00 +01:00
gdk
873bb4c15a
Fix BC6 Signed/Unsigned float texture formats
2020-01-09 02:13:00 +01:00
gdk
cdeeac163f
Improved Min/Mip -> MinFilter enum conversion
2020-01-09 02:13:00 +01:00
gdk
1bb08742c1
Calculate width from stride on texture copies
2020-01-09 02:13:00 +01:00
gdk
1876b346fe
Initial work
2020-01-09 02:13:00 +01:00