| Age | Commit message (Collapse) | Author |
|
* 3D engine now uses DeviceState too, plus new state modification tracking
* Remove old methods code
* Remove GpuState and friends
* Optimize DeviceState, force inline some functions
* This change was not supposed to go in
* Proper channel initialization
* Optimize state read/write methods even more
* Fix debug build
* Do not dirty state if the write is redundant
* The YControl register should dirty either the viewport or front face state too, to update the host origin
* Avoid redundant vertex buffer updates
* Move state and get rid of the Ryujinx.Graphics.Gpu.State namespace
* Comments and nits
* Fix rebase
* PR feedback
* Move changed = false to improve codegen
* PR feedback
* Carry RyuJIT a bit more
|
|
* Use DeviceState for compute and i2m
* Migrate 2D class, more comments
* Migrate DMA copy engine
* Remove now unused code
* Replace GpuState by GpuAccessorState on GpuAcessor, since compute no longer has a GpuState
* More comments
* Add logging (disabled)
* Add back i2m on 3D engine
|
|
|
|
* Ground work for separate GPU channels
* Rename TextureManager to TextureCache
* Decouple texture bindings management from the texture cache
* Rename BufferManager to BufferCache
* Decouple buffer bindings management from the buffer cache
* More comments and proper disposal
* PR feedback
* Force host state update on channel switch
* Typo
* PR feedback
* Missing using
|
|
This fixes a regression caused by #980, that was causing a crash on New
Super Lucky's Tale.
As always, this need feedback on possible regression on any games.
Fix #2343.
|
|
|
|
* Fix non-independent blend state not being updated
* Actually, this is not needed
|
|
* Implement clear buffer (fast path)
* Remove blank line
|
|
|
|
"Screen scissor" is the minimum size of all render targets, and is set when any render target is bound on NVN or OpenGL. Since it works on all active texture's real sizes, it is therefore more reliable than viewport 0's width, and is actually set before clear.
This fixes a regression with Hyrule Warriors: Age Of Calamity's cubemaps, which did not set viewport dimensions before clear. This resulted in attempting to create a cubemap with rectangular sides, which is logically and physically impossible. (also it just fails)
|
|
|
|
|
|
* Add swizzle matching rules.
Improves rules which try to match incompatible formats as perfect, such as D32 float -> R32 float.
Remove Format.HasOneComponent, since this information is now available via the FormatInfo struct.
* Fix this rule.
* Update component counts for depth formats.
|
|
* Implement a Macro JIT
* Nit: space
|
|
|
|
* Add new structures from official docs, start migrating GPFifo
* Finish migration to new GPFifo processor
* Implement fast constant buffer data upload
* Migrate to new GPFifo class
* XML docs
|
|
* Fix GL_INVALID_VALUE on glPointSize calls
* Implement more of Point primitive state
* Use existing Origin enum
|
|
* Initial transform feedback support
* Some nits and fixes
* Update ReportCounterType and Write method
* Can't change shader or TFB bindings while TFB is active
* Fix geometry shader input names with new naming
|
|
* Implement Logical Operation registers and functionality.
* Address Feedback 1
|
|
* Support inline index buffer data
* Sort usings
|
|
* Implement FIFO semaphore
* New enum for FIFO semaphore operation
|
|
* Viewport swizzle support on NV and clip origin
* Initialize default viewport swizzle state, emulate viewport swizzle on shaders when not supported
* Address PR feedback
|
|
|
|
Verified with deko3d and opengl driver code.
|
|
|
|
|
|
|
|
* Implement Constant Color blends and init blend states
* Address gdkchan's comments
Also adds Set methods to GpuState
* Fix descriptions of QueryModified
|
|
* Initial conditional rendering support
* Properly reset state
* Support conditional modes and skeleton a counter cache for future host conditional rendering
* Address PR feedback
|
|
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
|
|
* 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
|
|
* Implement Depth Clamping and add misc enums
* Fix formatting
|
|
|
|
* 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
|
|
* Support constant attributes (with a value of zero)
* Remove extra line
|
|
* Implement GPU scissors
* Remove unused using
* Add missing changes for Clear
|
|
|
|
|
|
Removes a useless null check
Aligns some values to improve readability
|
|
Add TODO comment for GL_EXT_polygon_offset_clamp
|
|
Thanks to LDj3SNuD for spotting these
|
|
|
|
|
|
|
|
as a workaround for compiler bugs (?)
|
|
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.
|
|
|
|
|
|
|
|
tracking, other fixes
|