Commit graph

14 commits

Author SHA1 Message Date
ReinUsesLisp
51605fafc0 Avoid calling buffer binding when shader didn't change (#295) 2018-07-26 13:49:29 -03:00
ReinUsesLisp
5fe0bc584b Send data to OpenGL host without client-side copies (#285)
* Directly send host address to buffer data

* Cleanup OGLShader

* Directly copy vertex and index data too

* Revert shader bind "cache"

* Address feedback
2018-07-19 16:02:51 -03:00
ReinUsesLisp
cd203e98f2 Implement Geometry shaders (#280)
* 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-19 02:33:27 -03:00
ReinUsesLisp
3e13b40b35 Add config key to dump shaders in local directory (#265)
* Add config key to dump shaders in local directory

* Address feedback
2018-07-15 19:37:27 -03:00
gdkchan
2f37583ab3
Some small shader related fixes (#258)
* Some small shader related fixes

* Address PR feedback
2018-07-14 13:08:39 -03:00
gdkchan
e6eeb6f09f
Add support for Vertex Program A and other small shader improvements (#192)
* 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-27 23:55:08 -03:00
gdkchan
900a84ae0a Fix vertex buffer size on the gpu when the draw vertex count is less than the buffer size, added a few more registers (currently not implemented) 2018-06-27 01:32:28 -03:00
ReinUsesLisp
09dfefed1f Implementation of UBOs instead of uniform constant arrays (#186)
* 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-26 02:10:54 -03:00
gdkchan
e7559f128f
Small OpenGL Renderer refactoring (#177)
* 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-23 21:39:25 -03:00
gdkchan
53a6922f87 Some small gpu improvements and shader improvements, add support for ASTC 4x4 textures (slow!) 2018-06-02 00:50:56 -03:00
gdkchan
79e0070363 Improve shader sending method to GAL, use a memory interface instead of reading a fixed array size and sending every time 2018-05-22 22:43:31 -03:00
gdkchan
b19c474082 Added more shader instructions, including BFE, BRA (partial), FMNMX, ISCADD, SHL, LD_C, some shader related fixes, added support for texture component selection 2018-05-17 15:25:42 -03:00
gdkchan
42ebfdff7f [GPU] Fix frame buffer being upside down in some cases 2018-04-14 00:39:24 -03:00
gdkchan
b9aa3966c0 Merge shader branch, adding support for GLSL decompilation, a macro
interpreter, and a rewrite of the GPU code.
2018-04-08 16:41:38 -03:00