Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pojavlauncherteam/vgpu
https://github.com/pojavlauncherteam/vgpu
Last synced: 2 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/pojavlauncherteam/vgpu
- Owner: PojavLauncherTeam
- Created: 2021-08-21T17:03:45.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-09-24T07:00:33.000Z (about 1 year ago)
- Last Synced: 2024-02-25T18:42:50.240Z (9 months ago)
- Language: C
- Size: 6.92 MB
- Stars: 1
- Watchers: 1
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# VGPU
The project is a bit like GL4ES, where I want to implement a hardware-accelerated GL converter: when an application calls the GL library, it will be mapped to GLES. In other words, VGPU packages the GLES library as a GL library.
# Current Status
GLAPI wrap:
Most of the GL2.x API and a small amount of GL3.x API(mainly texture and Uniform, because some of the special built-in variables of GLSL120 are now provided by GL4ES by combining API(glUniform) with shader string converters, such as gl_Vertex) now call gl4es.Global Implicit Type Conversion:
Supported:
int/ivecn <-> float/vecn
uint/uvecn <-> float/vecn
Converters:
Convert most variables in the Shader to the same intermediate type (such as float), and use a type constructor for uniform variables. The converter contains some simple context judgments.
Some problems brought about by this:
The arguments and return values of some built-in functions that use type int are constructed as intermediate types, which causes them to fail. But most of these functions have now been fixed.Universal Syntax Converter:
Shader conversion is based on ESSL3.x.
For GLSL120+(compatibility), all GLSL120 built-in variables and keywords will be converted to ESSL3.x, such as gl_FragData[n].
For GLSL150+(core), the converter now only has some simple conversions (it is not yet separated from the former).Other converters:
(Based on simple contextual judgments)
Supports assigning nonconst variables to const variables within a block.
not supported declaring array sizes with simple variables initialized to constants yet.
The % mod operator is not yet supported (this causes MC1.17 to fail because shader uses %)# About vk
Now and in the future I will work mainly on the vgpu_vk branch.