aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.OpenGL
AgeCommit message (Collapse)Author
2020-09-19Better viewport flipping and depth mode detection method (#1556)gdkchan
* Use a better viewport flipping approach * New approach to detect depth mode * nit: Sort method on the OpenGL backend * Adjust spacing on comment * Unswap near and far parameters based on ScaleZ
2020-09-10Texture/Buffer Memory Management Improvements (#1408)riperiperi
* Initial implementation. Still pending better valid-overlap handling, disposed pool, compressed format flush fix. * Very messy backend resource cache. * Oops * Dispose -> Release * Improve Release/Dispose. * More rule refinement. * View compatibility levels as an enum - you can always know if a view is only copy compatible. * General cleanup. Use locking on the resource cache, as it is likely to be used by other threads in future. * Rename resource cache to resource pool. * Address some of the smaller nits. * Fix regression with MK8 lens flare Texture flushes done the old way should trigger memory tracking. * Use TextureCreateInfo as a key. It now implements IEquatable and generates a hashcode based on width/height. * Fix size change for compressed+non-compressed view combos. Before, this could set either the compressed or non compressed texture with a size with the wrong size, depending on which texture had its size changed. This caused exceptions when flushing the texture. Now it correctly takes the block size into account, assuming that these textures are only related because a pixel in the non-compressed texture represents a block in the compressed one. * Implement JD's suggestion for HashCode Combine Co-authored-by: jduncanator <1518948+jduncanator@users.noreply.github.com> * Address feedback * Address feedback. Co-authored-by: jduncanator <1518948+jduncanator@users.noreply.github.com>
2020-08-07Rename DebugLevel Performance to Slowdowns (#1450)mageven
2020-08-04Improved Logger (#1292)mageven
* Logger class changes only Now compile-time checking is possible with the help of Nullable Value types. * Misc formatting * Manual optimizations PrintGuestLog PrintGuestStackTrace Surfaceflinger DequeueBuffer * Reduce SendVibrationXX log level to Debug * Add Notice log level This level is always enabled and used to print system info, etc... Also, rewrite LogColor to switch expression as colors are static * Unify unhandled exception event handlers * Print enabled LogLevels during init * Re-add App Exit disposes in proper order nit: switch case spacing * Revert PrintGuestStackTrace to Info logs due to #1407 PrintGuestStackTrace is now called in some critical error handlers so revert to old behavior as KThread isn't part of Guest. * Batch replace Logger statements
2020-08-02Facilitate OpenGL debug logging via GUI (#1373)mageven
* Allow printing GL Debug logs with GUI options Improve GL Debugger Make the new option persistent Address gdkchan's comments - Rename enum to GraphicsDebugLevel - Move Debugger Init to Renderer Init - Fix formatting * nit: newlines
2020-07-28Implement alpha test using legacy functions (#1426)gdkchan
2020-07-26Use polygon offset clamp if supported (#1429)gdkchan
2020-07-26Implement BGRA texture support (#1418)gdkchan
* Implement BGRA texture support * Missing AppendLine * Remove empty lines * Address PR feedback
2020-07-20GL: Implement more Point parameters (#1399)mageven
* Fix GL_INVALID_VALUE on glPointSize calls * Implement more of Point primitive state * Use existing Origin enum
2020-07-15Initial transform feedback support (#1370)gdkchan
* 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
2020-07-10Implement Logical Operation registers and functionality (#1380)riperiperi
* Implement Logical Operation registers and functionality. * Address Feedback 1
2020-07-07Implement Zero-Configuration Resolution Scaling (#1365)riperiperi
* Initial implementation of Render Target Scaling Works with most games I have. No GUI option right now, it is hardcoded. Missing handling for texelFetch operation. * Realtime Configuration, refactoring. * texelFetch scaling on fragment shader (WIP) * Improve Shader-Side changes. * Fix potential crash when no color/depth bound * Workaround random uses of textures in compute. This was blacklisting textures in a few games despite causing no bugs. Will eventually add full support so this doesn't break anything. * Fix scales oscillating when changing between non-native scales. * Scaled textures on compute, cleanup, lazier uniform update. * Cleanup. * Fix stupidity * Address Thog Feedback. * Cover most of GDK's feedback (two comments remain) * Fix bad rename * Move IsDepthStencil to FormatExtensions, add docs. * Fix default config, square texture detection. * Three final fixes: - Nearest copy when texture is integer format. - Texture2D -> Texture3D copy correctly blacklists the texture before trying an unscaled copy (caused driver error) - Discount small textures. * Remove scale threshold. Not needed right now - we'll see if we run into problems. * All CPU modification blacklists scale. * Fix comment.
2020-05-28Fix wrong face culling once and for all (#1277)gdkchan
* Viewport swizzle support on NV and clip origin * Initialize default viewport swizzle state, emulate viewport swizzle on shaders when not supported * Address PR feedback
2020-05-27Omit image format if possible, and fix BA bit (#1280)gdkchan
* Omit image format if possible, and fix BA bit * Match extension name
2020-05-27Flush GL commands before inevitably waiting for a query result. (#1278)riperiperi
2020-05-24Remember bound framebuffer to avoid glGetInteger use. (#1273)riperiperi
glGetInteger seems to sync with GPU which is less than ideal, and slowing down texture copies.
2020-05-23Spanify Graphics Abstraction Layer (#1226)gdkchan
* Spanify Graphics Abstraction Layer * Be explicit about BufferHandle size
2020-05-04Implement Counter Queue and Partial Host Conditional Rendering (#1167)riperiperi
* Implementation of query queue and host conditional rendering * Resolve some comments. * Use overloads instead of passing object. * Wake the consumer threads when incrementing syncpoints. Also, do a busy loop when awaiting the counter for a blocking flush, rather than potentially sleeping the thread. * Ensure there's a command between begin and end query.
2020-05-04Upgrade projects to C#8 (#1193)Ac_K
Some parts of our code needs C# 8 who isn't set as default in Visual Studio. To fix this we have to set the C# version correctly in the csproj files and then we are be able to build the project using Visual Studio.
2020-05-04Implement user-defined clipping on GL state pipeline (#1118)mageven
2020-04-30Fix depth clamp enable bit, unit scale for polygon offset. (#1178)riperiperi
Verified with deko3d and opengl driver code.
2020-04-25Implement texture buffers (#1152)gdkchan
* Implement texture buffers * Throw NotSupportedException where appropriate
2020-04-25Implement Constant Color blends (#1119)mageven
* Implement Constant Color blends and init blend states * Address gdkchan's comments Also adds Set methods to GpuState * Fix descriptions of QueryModified
2020-04-22Update .NET Core to 3.1, and update NuGet Packages (#1121)Michael Kuklinski
* Updated all NuGet packages to latest, and updated the framework from .NET Core 3.0 to 3.1. * Updating appveyor settings for 3.1 Updating appveyor to use the netcoreapp3.1 path instead of 3.0. * Removing unneeded NuGet package System.Runtime.CompilerServices.Unsafe. * Removing unused NuGet package SharpFontCore. * Removing unused NuGet package TimeZoneConverter.Posix * Cleaning up by adding newline to a csproj. * Simplfying a NuGet conditional include, and adding a warning disable for an annoying NuGet package. * I'm not sure if .travis.yml is still used, but I'm updating its 'dotnet' version to the correct SDK. * Making the runtime version into its own environment variable so it's a bit easier to change in the future. * Removing OpenTK.NetStandard reference from Ryujinx.Common * Fixing indentation in Common.csproj * Updating the README to specify .NET Core 3.1. * Reverting the update of the GTKSharp package so it doesn't block the PR.
2020-04-17Implement Depth Clamping (#1120)mageven
* Implement Depth Clamping and add misc enums * Fix formatting
2020-04-07Simple GPU fixes (#1093)mageven
* 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-03-31Make max anisotropy configurable (#1043)Xpl0itR
* Make max anisotropy configurable * Move opengl command to opengl project * Add GUI option
2020-03-30Support constant attributes (with a value of zero) (#1066)gdkchan
* Support constant attributes (with a value of zero) * Remove extra line
2020-03-29Workaround for AMD and Intel view format bug (#1050)gdkchan
* Workaround for Intel view format bug * Dispose of the intermmediate texture aswell * Apply workaround on AMD aswell
2020-03-29Implement GPU scissors (#1058)gdkchan
* Implement GPU scissors * Remove unused using * Add missing changes for Clear
2020-03-24Add GPU name in status bar (#984)HorrorTroll
* Add GPU name in status bar * Fixed like Ac_K suggest * Nit. * Minor fix * Minor change. * Nit. * Fixed for ATI vendor * Minor fix, again...
2020-03-23Keep sRGB enabled for texture blits (#1009)gdkchan
2020-03-01Reduce copy destination size by target mipmap level, rather than source ↵riperiperi
size. (#959) * Change destination size by target mipmap level, rather than source. * Check dst for Texture3D rather than src.
2020-02-13Some fixes for the new GLRenderer (#930)Thog
* Some fixes for the new GLRenderer Changelog: - Fix transparency of the window on some games on Windows. - Fix escape key not being able to exit emulation. - Fix inverted logic in fullscreen event handling. - Fix a race condition when stoping emulation causing a hang. - Fix a memory leak of the OpenGL context when stoping emulation (saving ~200MB of RAM when stoping emulation). - Simplify and document behaviours when exiting the emulator while the emulation is running. * Make sure to clear alpha channel when presenting Texture This fix once and for all the transparency issue on Windows. * Enforce footer bar size to avoid gl widget to get resized to 1280x724 * Fix full screen inversion in MainWindow and make sure _listStatusBox don't come back when not needed * Remove previous transparency clear attempt that is useless now * Remove an extra line return
2020-02-12Add inbuilt Opengl renderer to window (#922)emmauss
* add gl rendering widget * embed renderer into main window * add input * fix mouse input * fix mouse coords * refresh game list after closing game, remove profiler method * rebase, hide game list progress bar while game is running * Some bug fixes Changelog: - Reapply some changes that got lost while rebasing from #904 - Make sure to guarantee exclusivity on the GL context (fixing multiple possible race conditions on Windows) - Avoid making GLRenderer disposed multiple time * add fullscreen, enable input on focus, disable aplha * addressed comments * Disable transparency in the window * fix fullscreen state, fix focus, addressed comments * nit * addressed nit Co-authored-by: Thog <thog@protonmail.com>
2020-02-02Use correct shader local memory size instead of a hardcoded size (#914)gdkchan
* 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-02Support configurable point size (#916)gdkchan
2020-01-31Enable stencil texturing (fixes #866) (#910)gdkchan
2020-01-13Add a GetSpan method to the memory manager and use it on GPU (#877)gdkchan
2020-01-13Support instanced draw of quads" (#881)gdkchan
2020-01-13Replace glFinish with barrier for WaitForIdle (#878)gdkchan
2020-01-10InitializeCounters to InitializeAc_K
2020-01-10PrintGpuInformationAc_K
2020-01-10Add GPU Information to LoggingAc_K
2020-01-09Fix R5G6B5 in SurfaceFlinger (#863)Thog
Also fix B5G6R5Unorm wrong definition in Ryujinx.Graphics.OpenGL.
2020-01-09Add runtime identifiers to new projectsgdkchan
2020-01-09Address PR feedbackgdkchan
Removes a useless null check Aligns some values to improve readability
2020-01-09Address PR feedbackgdkchan
Add TODO comment for GL_EXT_polygon_offset_clamp
2020-01-09Address PR feedbackgdkchan
2020-01-09Remove more unused codegdkchan