aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics/Gal
AgeCommit message (Collapse)Author
2018-12-17Move MaxUboSize definition (#530)Thomas Guillemard
* Move MaxUboSize definition This fix a crash on Ryujinx.ShaderTools caused by the absence of an OpenGL context. * Use a constant for the value in ShaderTools * Address comments
2018-11-28Add support for bigger UBOs, fix sRGB regression, small improvement t… (#503)gdkchan
* Add support for bigger UBOs, fix sRGB regression, small improvement to the 2D copy engine * Break into multiple lines * Read fractions for source/step values on the 2d copy engine aswell * Use fixed point math for more speed * Fix reinterpret when texture sizes are different
2018-11-28Better process implementation (#491)gdkchan
* Initial implementation of KProcess * Some improvements to the memory manager, implement back guest stack trace printing * Better GetInfo implementation, improve checking in some places with information from process capabilities * Allow the cpu to read/write from the correct memory locations for accesses crossing a page boundary * Change long -> ulong for address/size on memory related methods to avoid unnecessary casts * Attempt at implementing ldr:ro with new KProcess * Allow BSS with size 0 on ldr:ro * Add checking for memory block slab heap usage, return errors if full, exit gracefully * Use KMemoryBlockSize const from KMemoryManager * Allow all methods to read from non-contiguous locations * Fix for TransactParcelAuto * Address PR feedback, additionally fix some small issues related to the KIP loader and implement SVCs GetProcessId, GetProcessList, GetSystemInfo, CreatePort and ManageNamedPort * Fix wrong check for source pages count from page list on MapPhysicalMemory * Fix some issues with UnloadNro on ldr:ro
2018-11-23Add RGBA16 Unorm (#513)HorrorTroll
2018-11-19Add BGRA8 Srgb (#505)HorrorTroll
2018-11-17Enable SRGB framebuffers by default (#502)gdkchan
2018-11-17Improved GPU command lists decoding (#499)gdkchan
* Better implementation of the DMA pusher, misc fixes * Remove some debug code * Correct RGBX8 format * Add support for linked Texture Sampler Control * Attempt to fix upside down screen issue
2018-11-14Force cache to remove entries when memory usage exceeds a given threshold (#492)gdkchan
2018-11-14Initialize blend registers with default values (#497)gdkchan
2018-11-11Add BGR5A1 Image Format (#495)Ac_K
* Add `BGR5A1` to ImageUtils.cs Add `BGR5A1` Image Format. * Add BGR5A1 to OGLEnumConverter.cs
2018-11-01Implment common and independent blend properly (fixes #458) (#485)gdkchan
* Implment common and independent blend properly * Nits
2018-10-30Fix regression caused by wrong time delta calculation on cache deletion methodsgdkchan
2018-10-28Timing: Optimize Timestamp Aquisition (#479)jduncanator
* Timing: Optimize Timestamp Aquisition Currently, we make use of Environment.TickCount in a number of places. This has some downsides, mainly being that the TickCount is a signed 32-bit integer, and has an effective limit of ~25 days before overflowing and wrapping around. Due to the signed-ness of the value, this also caused issues with negative numbers. This resolves these issues by using a 64-bit tick count obtained from Performance Counters (via the Stopwatch class). This has a beneficial side effect of being significantly more accurate than the TickCount. * Timing: Rename ElapsedTicks to ElapsedMilliseconds and expose TicksPerX * Timing: Some style changes * Timing: Align static variable initialization
2018-10-25Fix Color Mask values (#473)gdkchan
* Fix color mask common, set default value on first color mask register * Missing check * Better exception messages * Address PR feedback * Add fixme as per review feedback
2018-10-23Fix for render target and a shader compilation issue (#471)gdkchan
* Fix render target using possibly deleted or wrong handles * Fix basic blocks with only a KIL instruction on the shader translator * Formatting fix
2018-10-23Add depth range support on the GPU (#472)gdkchan
* Add depth range support on the GPU * Address PR feedback
2018-10-17Improve texture tables (#457)gdkchan
* Improve texture tables * More renaming and other tweaks * Minor tweaks
2018-10-14Add G8R8Unorm, G8R8Snorm, B8G8R8A8, D24_S8 Uint, R8Uint, R32Uint (#426)HorrorTroll
* Implement B5G6R5Unorm & BGR5A1Unorm * Fix R8G8 Unorm to G8R8 Unorm * Added back R8G8 Unorm * Fix G8R8Unorm, add R8G8B8A8 * Add D24_S8 Uint * Add R8Uint & R32Uint * Another fixed * Reverting back * R8G8B8A8 change to B8G8R8A8 * Add G8R8 Snorm
2018-10-13Add support for saturation on some shader instructions, fix ReadTexture ↵gdkchan
alignment and add ColorMask support (#451) * Add support for saturation on some shader instructions, fix ReadTexture alignment * Add ColorMask support, other tweaks
2018-10-13Quads, QuadStrip, const attributes and half-float attributes support (#447)gdkchan
* Quads, QuadStrip and const attributes support * Add support for half float attributes and fix texture pitch alignment * Throw when an unsupported float type is used as const attribute aswell
2018-09-26Fix multiple rendertargets (#427)ReinUsesLisp
* Simplify render target bindings * Implement multiple viewports * Pack glViewportIndexed calls into a single glViewportArray * Use ARB_viewport_array when available * Cache framebuffer attachments * Use get accessors in OGLExtension * Address feedback
2018-09-19Implement DepthWriteMask and add R16G16 (#425)ReinUsesLisp
2018-09-19General improvements for GpuResourceManager (#421)ReinUsesLisp
* General improvements to GpuResourceManager * Address feedback * Address feedback
2018-09-19Fixup SSY (#424)ReinUsesLisp
2018-09-18Fix d32s8 format on OGLEnumConverter (#420)gdkchan
2018-09-18Allow "reinterpretation" of framebuffer/zeta formats (#418)gdkchan
* (Re)Implement format reinterpretation, other changes * Implement writeback to guest memory, some refactoring * More refactoring, implement reinterpretation the old way again * Clean up * Some fixes on M2MF (old Dma engine), added partial support for P2MF, fix conditional ssy, add Z24S8 zeta format, other fixes * nit: Formatting * Address PR feedback
2018-09-17Implement B5G6R5Unorm, BGR5A1Unorm, RGBA32Uint, R16Unorm and Z16 texture ↵HorrorTroll
format. Fix BC6H_UF16 from Unorm to Sfloat (#417) * Implement B5G6R5Unorm & BGR5A1Unorm * Implement RGBA32Uint * Implement R16Unorm & Z16 texture format * Fix BC6H_UF16 from Unorm to Sfloat
2018-09-11Fixup image error message and add G8R8 to size query (#410)ReinUsesLisp
2018-09-08Move GPU emulation from Ryujinx.HLE to Ryujinx.Graphics and misc changes (#402)ReinUsesLisp
* Move GPU LLE emulation from HLE to Graphics * Graphics: Move Gal/Texture to Texture * Remove Engines/ directory and namespace * Use tables for image formats * Abstract OpCode decoding * Simplify image table * Do not leak Read* symbols in TextureReader * Fixups * Rename IGalFrameBuffer -> IGalRenderTarget * Remove MaxBpp hardcoded value * Change yet again texture data and add G8R8 flipping * Rename GalFrameBufferFormat to GalSurfaceFormat * Unident EnsureSetup in ImageHandler * Add IsCompressed * Address some feedback
2018-09-01Fix exception throw message for unimpl texture formats (#398)gdkchan
2018-09-01Shaders: Handle Ipa PASS argument as needed in Fragment Shaders (#392)ReinUsesLisp
2018-09-01Add BGRA8Unorm, BGRA8Srgb, ZF32_X24S8 texture format (#377)HorrorTroll
* Add BGRA8Unorm, BGRA8Srgb, ZF32_X24S8 texture format * Add BGRA8Unorm, BGRA8Srgb, ZF32_X24S8 texture format * Revert "Add BGRA8Unorm, BGRA8Srgb, ZF32_X24S8 texture format" This reverts commit aea5c9db3a5e0b11545c3520f885e411a3587113. * Conflicts fix * Wrong fix * E * e
2018-08-31Implement SSY/SYNC shader instructions (#382)ReinUsesLisp
* Use a program counter to control shaders' flow * Cleanup * Implement SSY/SYNC * Address feedback * Fixup commentary * Fixup Ssy instruction
2018-08-30Fixup HasColor for depth/stencil values (#379)ReinUsesLisp
2018-08-27Add R32_G32 texture format (#383)HorrorTroll
2018-08-25Use mirrored texture wraps when available (#361)ReinUsesLisp
2018-08-25Implement vertex instancing (#381)ReinUsesLisp
2018-08-23Implement multiple rendertarget attachments and depth writting (#375)ReinUsesLisp
* Add depth writting * Implement multiple attachments * Address feedback
2018-08-23Avoid querying and setting texture bindings in hot code (#376)ReinUsesLisp
2018-08-20Avoid gpr overwritting on Ld_C instruction (#371)ReinUsesLisp
* Avoid gpr overwritting on LD_C instruction * Address feedback * Ignore invalid registers
2018-08-20Use signed and unsigned vertex types (#370)ReinUsesLisp
2018-08-19Rendertarget attachments, texture and image changes (#358)ReinUsesLisp
* Add multiple color outputs for fragment shaders * Add registers and gal enums * Use textures for framebuffers and split color and zeta framebuffers * Abstract texture and framebuffer targets as an image * Share images between framebuffers and textures * Unstub formats * Add some formats * Disable multiple attachments * Cache framebuffer attachments * Handle format types * Add some rendertarget formats * Code cleanup * Fixup half float types * Address feedback * Disable multiple attachments in shaders * Add A4B4G4R4 image format * Add reversed section for image enums
2018-08-16Code style fixes and nits on the HLE project (#355)gdkchan
* Some style fixes and nits on ITimeZoneService * Remove some unneeded usings * Remove the Ryujinx.HLE.OsHle.Handles namespace * Remove hbmenu automatic load on process exit * Rename Ns to Device, rename Os to System, rename SystemState to State * Move Exceptions and Utilities out of OsHle * Rename OsHle to HOS * Rename OsHle folder to HOS * IManagerDisplayService and ISystemDisplayService style fixes * BsdError shouldn't be public * Add a empty new line before using static * Remove unused file * Some style fixes on NPDM * Exit gracefully when the application is closed * Code style fixes on IGeneralService * Add 0x prefix on values printed as hex * Small improvements on finalization code * Move ProcessId and ThreadId out of AThreadState * Rename VFs to FileSystem * FsAccessHeader shouldn't be public. Also fix file names casing * More case changes on NPDM * Remove unused files * Move using to the correct place on NPDM * Use properties on KernelAccessControlMmio * Address PR feedback
2018-08-16Implement PointCoord and PointSize shader attributes (#353)ReinUsesLisp
* Implement PointCoord and PointSize shader attributes * Address feedback
2018-08-15More flexible memory manager (#307)gdkchan
* Keep track mapped buffers with fixed offsets * Started rewriting the memory manager * Initial support for MapPhysicalMemory and UnmapPhysicalMemory, other tweaks * MapPhysicalMemory/UnmapPhysicalMemory support, other tweaks * Rebased * Optimize the map/unmap physical memory svcs * Integrate shared font support * Fix address space reserve alignment * Some fixes related to gpu memory mapping * Some cleanup * Only try uploading const buffers that are really used * Check if memory region is contiguous * Rebased * Add missing count increment on IsRegionModified * Check for reads/writes outside of the address space, optimize translation with a tail call
2018-08-13Fix FMUL and TEXS shader instructions (#347)gdkchan
2018-08-13Add partial support to the TEX.B shader instruction (#342)gdkchan
* Add partial support to the TEX.B shader instruction, fix for mixed indexed and non-indexed drawing * Better exception
2018-08-10Low level graphics API prerequisites (#319)ReinUsesLisp
* Add GalPipelineState and IGalPipeline * Separate UploadVertex call * Add ConstBuffer cache * Move Vertex Assembly into GalPipelineState * Move Uniform binds to GalPipelineState * Move framebuffer flip into a buffer * Rebase * Fix regression * Move clear values from VertexEndGl to ClearBuffers * Rename obscure names O->Old S->New
2018-08-06Changing shader decompiler to avoid vec2 and vec3 types, which were causing ↵Darabat
specific crashes. (#332) * Changing shader decompiler to avoid vec2 and vec3 types, which were causing specific crashes. * aligning code * step back * Redoing changes * Redoing changes * Redoing changes and avoiding concatenations * redoing changes
2018-08-03Fix for integer vertex attributes and iset bf flag (#323)gdkchan