aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics/Gal
AgeCommit message (Collapse)Author
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
2018-07-29Implement A2B10G10R10 TextureFormat (#248)greggameplayer
* add A2B10G10R10 TextureFormat * return correct PixelFormat & PixelType * return correct texture size * return correct Bytes Per Pixel
2018-07-26Avoid calling buffer binding when shader didn't change (#295)ReinUsesLisp
2018-07-23Blit framebuffer without shaders (#229)ReinUsesLisp
* Blit framebuffer without shaders * De-hardcode native size values * Adapt to dehardcoded framebuffers and address feedback * Remove framebuffer rebinding
2018-07-19Send data to OpenGL host without client-side copies (#285)ReinUsesLisp
* Directly send host address to buffer data * Cleanup OGLShader * Directly copy vertex and index data too * Revert shader bind "cache" * Address feedback
2018-07-19Implement Geometry shaders (#280)ReinUsesLisp
* Implement Geometry shaders * Add EmitVertex() and EndPrimitive() * Read output geometry data from header * Stub Vmad * Add Iadd_I32 * Stub Mov_S (S2R) * Stub Isberd * Change vertex index to gpr39 in Abuf * Add stub messages for consistency * Do not print input block when there is no attributes * Use GL_ARB_enhanced_layouts * Skip geometry shaders when there's no GL_ARB_enhanced_layouts * Address feedback * Address feedback
2018-07-19Support deswizzle of sparse tiled textures and some frame buffer fixes (#275)gdkchan
* Attempt to support deswizzle of sparse tiled textures * Use correct frame buffer and viewport sizes, started to clean up the copy engine * Correct texture width alignment * Use Scale/Translate registers to calculate viewport rect * Allow texture copy between frame buffers
2018-07-19Implement BF10GF11RF11 TextureFormat (#246)greggameplayer
* add BF10GF11RF11 TextureFormat * return correct PixelFormat & PixelType * return correct texture size * return correct Bytes Per Pixel * correct PixelType
2018-07-19Implement Z24S8 TextureFormat (#247)greggameplayer
* add Z24S8 TextureFormat * return correct PixelFormat & PixelType * return correct texture size * return correct Bytes Per Pixel * Correct PixelType
2018-07-17Implement some shader instructions (#252)ReinUsesLisp
* Add IADDI32, IADD and SEL shader instructions * Add LOP shader instruction and fix LOP32I pass_b * Add ISET shader instruction * Add IADD3 shader instruction * Address feedback * Fixup OperA in Iadd_I32
2018-07-16Implement BC6H_SF16 & BC6H_UF16 Texture Formats (#255)greggameplayer
* Implement BC6H_SF16 & BC6H_UF16 * correct coding style (1/5) * correct coding style (2/5) * correct coding style (3/5) * correct coding style (4/5) * correct coding style (5/5)
2018-07-15Add config key to dump shaders in local directory (#265)ReinUsesLisp
* Add config key to dump shaders in local directory * Address feedback
2018-07-14Some small shader related fixes (#258)gdkchan
* Some small shader related fixes * Address PR feedback
2018-07-09Add locking methods to the ogl resource cache (#238)gdkchan
* Add locking methods to the ogl resource cache * Remove some unused arguments * Add the ZF32 texture format
2018-07-08Implement GPU primitive restart (#221)ReinUsesLisp
2018-07-06Disable front facing and face culling to avoid regression (#226)ReinUsesLisp
* Disable tests for framebuffer blitting
2018-07-05Implement some GPU features (#209)ReinUsesLisp
* Implement stencil testing * Implement depth testing * Implement face culling * Implement front face * Comparison functions now take OGL enums too * Fix front facing when flipping was used * Add depth and stencil clear values
2018-07-03Add FaceAttr in GLSL, unmanaged case in EmitTex and ConstantColorG80 blend ↵ReinUsesLisp
factor (#207) * Add FaceAttr (0x3fc) input attribute in GLSL * Implement unmanaged case in EmitTex * Add ConstantColor for 0xC001 (G80) from PR #145
2018-06-28Explicit GLSL "position" attribute location (#199)ReinUsesLisp
2018-06-28Add support for vertex base on indexed draws, fix index buffer first ↵gdkchan
(untested) (#197)
2018-06-28Somewhat better ClearBuffers implementationgdkchan
2018-06-27Add support for Vertex Program A and other small shader improvements (#192)gdkchan
* Add WIP support for Vertex Program A, add the FADD_I32 shader instruction, small fix on FFMA_I encoding, nits * Add separate subroutines for program A/B, and copy attributes to a temp * Move finalization code to main * Add new line after flip uniform on the shader * Handle possible case where VPB uses an output attribute written by VPA but not available on the vbo * Address PR feedback
2018-06-27Fix vertex buffer size on the gpu when the draw vertex count is less than ↵gdkchan
the buffer size, added a few more registers (currently not implemented)
2018-06-26Fix GL.CreateBuffers -> GL.GenBuffers (#189)ReinUsesLisp
2018-06-26Implementation of UBOs instead of uniform constant arrays (#186)ReinUsesLisp
* Sort uniform binding to avoid possible failures in drivers fewer bindings * Throw exception for Cbuf overflow * Search for free bindings instead of using locked ones * EnsureAllocated when binding buffers * Fix uniform bindings * Remove spaces * Use 64 KiB UBOs when available * Remove double colon * Use IdentationStr and avoid division in Cbuf offset * Add spaces
2018-06-23Small OpenGL Renderer refactoring (#177)gdkchan
* Call OpenGL functions directly, remove the pfifo thread, some refactoring * Fix PerformanceStatistics calculating the wrong host fps, remove wait event on PFIFO as this wasn't exactly was causing the freezes (may replace with an exception later) * Organized the Gpu folder a bit more, renamed a few things, address PR feedback * Make PerformanceStatistics thread safe * Remove unused constant * Use unlimited update rate for better pref
2018-06-23Fix 3 graphics related issues (#180)gdkchan
* Fix 3 graphics related bugs * OGLShader shouldn't be public (yet)
2018-06-21 Port from OpenTK.NETCore to OpenTK.NetStandard (#176)ReinUsesLisp
* Minor code changes * Forgot to remove a method
2018-06-12Implement R16 texture format (#147)Lordmau5
2018-06-12Minor shader fixesgdkchan
2018-06-10Fix a small size related issue on MapBufferEx and add the BC7U texture formatgdkchan
2018-06-08Texture/Vertex/Index data cache (#132)gdkchan
* Initial implementation of the texture cache * Cache vertex and index data aswell, some cleanup * Improve handling of the cache by storing cached ranges on a list for each page * Delete old data from the caches automatically, ensure that the cache is cleaned when the mapping/size changes, and some general cleanup
2018-06-02Fix copy-paste mistake, also related to astc...gdkchan
2018-06-02Fix mistake on astc conversion, make some static methods that shouldn't be ↵gdkchan
public private, remove old commmented out code
2018-06-02Re add some texture formats that I somehow removed by accident on ↵gdkchan
OGLEnumConverter
2018-06-02Some small gpu improvements and shader improvements, add support for ASTC ↵gdkchan
4x4 textures (slow!)