百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
V

vitaGL

> 编程语言
开源

用于 PSVITA 的 openGL 封装。

609 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

用于 PSVITA 的 openGL 封装。

vitaGL is an opensource openGL driver for PSVITA development. It acts as a wrapper between openGL and sceGxm and allows to use a subset of openGL functions with full hardware acceleration by translating the code to sceGxm equivalent.

Prerequisites

In order to run an homebrew made with vitaGL, you are going to need libshacccg.suprx extracted and decrypted on your console. You can refer to this guide for more details about its extraction: https://samilops2.gitbook.io/vita-troubleshooting-guide/shader-compiler/extract-libshacccg.suprx

Help and Troubleshooting

If you plan to use vitaGL for one of your projects, you can find an official channel to get help with it on Vita Nuova discord server: https://discord.gg/Mz7MmktcuK

Build Instructions

In order to build vitaGL use the following command: make install.

These are all the available flags usable when compiling the library:

Debug Flags

Flag Description
HAVE_SHARK_LOG=1 Enables logging support in runtime shader compiler.
LOG_ERRORS=1 Errors will be logged with sceClibPrintf.
HAVE_PROFILING=1 Enables lightweighted profiler for CPU time spent in draw calls.
HAVE_DEBUGGER=1 Enables lightweighted on screen debugger interface.
HAVE_DEBUGGER=2 Enables lightweighted on screen debugger interface with extra information (devkit only).
HAVE_RAZOR=1 Enables debugging features through Razor debugger (retail and devkit compatible).
HAVE_DEVKIT=1 Enables extra debugging features through Razor debugger available only for devkit users.
HAVE_CPU_TRACER=1 Makes the library insert a Razor CPU sync at every buffer swap for better frame timelines in the profiler.
DEBUG_GLSL_TRANSLATOR=1 Enables logging of GLSL translator input and output prior shader compilation process.
DEBUG_GLSL_PREPROCESSOR=1 Enables logging of GLSL preprocessor input and output prior shader compilation process.
DEBUG_GC=1 Enables sanity checks for the internal garbage collector.
DEBUG_THREAD_SAFENESS=1 Enables sanity checks for thread safety usage of the library.

Compatibility Flags

Flag Description
HAVE_CUSTOM_HEAP=1 Replaces sceClibMspace heap implementation with custom one (Safer and with proper diagnostic).
HAVE_GLSL_TEXTURE_SIZE=1 Enables experimental automatic handling of textureSize GLSL calls with the GLSL translator.
HAVE_GLSL_UBOS=1 Enables experimental support for nominal uniform buffer objects in GLSL shaders with the GLSL translator.
HAVE_FFP_SHADER_SUPPORT=1 Enables support for GLSL 1.20 legacy built-in ffp uniform bindings (eg. gl_ModelViewProjectionMatrix). Causes the shader pipeline to be slightly slower.
SOFTFP_ABI=1 Compiles the library in soft floating point compatibility mode.
STORE_DEPTH_STENCIL=1 Makes all framebuffers depth/stencil surfaces to be load/stored on memory. Makes the rendering slower but more compliant with OpenGL standards.
HAVE_HIGH_FFP_TEXUNITS=1 Enables support for more than 2 texunits for fixed function pipeline at the cost of some performance loss.
HAVE_DISPLAY_LISTS=1 Enables support for display lists at the cost of some performance loss.
SAFE_ETC1=1 Disables hardware support for ETC1 textures. Makes ETC1 textures usage less efficient but allows for proper debugging in Razor.
SAFE_DRAW=1 Makes some optimizations in the drawing pipeline less efficient but can solve some glitches.
SAFE_UNIFORMS=1 Makes some optimizations in the shaders pipeline less efficient but makes uniform location indexing for basic type arrays compliant.
UNPURE_TEXFORMATS=1 Enables support for texture dimensions different than 2D (tex2D is still required in shader code).
ENABLE_LEGACY_PIPELINE=1 Enables support for the legacy vglDrawObjects pipeline.
HAVE_FIXED_ATTRIBUTES=1 Enables experimental support for GL_FIXED attributes in shaders when GLSL shaders are used.

Hack Flags

Flag Description
NO_TEX_COMBINER=1 Disables texture combiner support (GL_COMBINE) for faster fixed function pipeline code execution.
NO_DEBUG=1 Disables most of the error handling features (Faster CPU code execution but code may be non compliant to all OpenGL standards).
BUFFERS_SPEEDHACK=1 Enables faster vertex buffer copying. May cause crashes.
DRAW_SPEEDHACK=1 Enables faster code for draw calls. May cause crashes.
DRAW_SPEEDHACK=2 Enables faster code for draw calls only for large vertex data draws. May cause crashes.
INDICES_DRAW_SPEEDHACK=1 Enables faster code for handling index buffers for draw calls. May cause crashes.
INDICES_SPEEDHACK=1 Produces faster draw code but disables support for instanced draws and makes 32 bit (GL_UNSIGNED_INT) indexed draws potentially cause glitches.
MATH_SPEEDHACK=1 Enables faster code for matrix math calls. May cause glitches.
TEXTURES_SPEEDHACK=1 Makes glTexSubImage2D/glTexSubImage1D non fully OpenGL compliant but makes rendering pipeline slightly faster. Incompatible with HAVE_TEXTURE_CACHE=1.
TEXTURE_UPLOADS_SPEEDHACK=1 Makes uploading of PO2 compressed textures faster but might cause crashes.
SAMPLERS_SPEEDHACK=1 Enables faster code for samplers resolution during shaders usage. May cause glitches.
PRIMITIVES_SPEEDHACK=1 Makes draw calls more efficient but GL_LINES and GL_POINTS primitives usage may cause glitches.
DEPTH_STENCIL_HACK=1 Makes depth and stencil buffers have no memory costs but can cause crashes in some circumstances.
READBACKS_SPEEDHACK=1 Makes glReadPixels faster but may cause glitched readbacks.
CIRCULAR_POOL_SPEEDHACK=1 Makes the internal circular pool use a single buffer. Slightly improves CPU performance but might cause glitches.

Misc Flags

Flag Description
HAVE_TEXTURE_CACHE=1 Adds file caching for textures not used since a lot of time, acting like a sort of swap implementation to increase effective available memory. (Experimental)
NO_DMAC=1 Disables sceDmacMemcpy usage. In some rare instances, it can improve framerate.
HAVE_UNFLIPPED_FBOS=1 Framebuffers objects won't be internally flipped to match OpenGL standards.
HAVE_WVP_ON_GPU=1 Moves calculation of the wvp in fixed function pipeline codepath to the GPU. Reduces CPU workload and increases GPU one.
SHARED_RENDERTARGETS=1 Makes small framebuffers objects use shared rendertargets instead of dedicated ones.
SHARED_RENDERTARGETS=2 Makes small framebuffers objects use shared rendertargets instead of dedicated ones and adds a mechanism for recycling older rendertargets.
NO_CIRCULAR_POOL=1 Makes temporary data buffers being handled without a circular pool. Reduces memory usage but makes CPU performance worse.
USE_SCRATCH_MEMORY=1 Makes GL_DYNAMIC and GL_STREAM vbos be configurable to use circular pool instead of regular allocations. Not compatible with NO_CIRCULAR_POOL.
HAVE_PTHREAD=1 Use pthread instead of sceKernel for starting garbage collector thread.
SINGLE_THREADED_GC=1 Makes the garbage collector run on main thread.
PHYCONT_ON_DEMAND=1 Makes the physically contiguous RAM be handled with separate memblocks instead of an heap.
UNPURE_TEXTURES=1 Makes legal to upload textures without base level.
UNPURE_TEXCOORDS=1 Makes legal to use multitexturing with fixed-function pipeline with GL_TEXTURE0 disabled.
DISABLE_FFP_MULTITEXTURE=1 Disables multitexture processing during draw calls performed with fixed function pipeline.
HAVE_WRAPPED_ALLOCATORS=1 Allows usage of vgl allocators inside wrapped allocators.
HAVE_SHADER_CACHE=1 Enables fast automatic file caching (based on XH3 xxHash algorithm) for application provided shaders.
NO_CLIB=1 Disables sceClib functions usage for easier debugging at the cost of slightly slower CPU code.
DISABLE_W_CLAMPING=1 Disables W clamping during viewport calculation. Might fix some glitches.
NO_TILE_CLIPPER=1 Disables early tile clipping for scissor testing. Slightly reduces CPU workload but increases GPU workload.
NO_SPLASHSCREEN=1 Disables the vitaGL boot splashscreen that hides loading times.

Samples

You can find samples in the samples folder in this repository.

Projects actually using vitaGL

Here you can find a list of projects using vitaGL:

Direct OpenGL Usage:

Aerofoil Vita - Port of Glider PRO

Anomaly 2 Vita - Port of Anomaly 2

Anomaly Defenders Vita - Port of Anomaly Defenders

Anomaly Korea - Port of Anomaly Korea

Anomaly WE Vita - Port of Anomaly Warzone Earth HD

AvP Gold - Port of Aliens versus Predator: Gold Edition

Baba Is You Vita - Port of Baba Is You

Billy Frontier Vita - Port of Billy Frontier

Bugdom - Port of Bugdom

bc2_vita - Port of Battlefield Bad Company 2 Mobile

Crazy Taxi Vita - Port of Crazy Taxi Classic

Cro-Mag Rally Vita - Port of Cro-Mag Rally

CrossCraft Classic - Multiplatform Minecraft Classic clone

d3es-vita - Port of Doom 3

Daedalus X64 - Port of Daedalus X64 (N64 Emulator)

Dead Space Vita - Port of Dead Space (Android)

Death Road to Canada Lite - Port of Death Road to Canada

Doom64EX - Port of Doom64EX (Doom 64 sourceport)

Fade to Black - Port of Fade to Black

Fahrenheit Vita - Port of Fahrenheit: Indigo Prophecy

FF3-Vita - Port of Final Fantasy III (3D Remake)

FF4-Vita - Port of Final Fantasy IV (3D Remake)

FF4AY_Vita - Port of Final Fantasy IV: The After Years (3D Remake)

FF5-Vita - Port of Final Fantasy V

Flycast - Port of Flycast (Dreamcast Emulator)

Funky Smugglers Vita - Port of Funky Smugglers

Hassey Collection - Port of Galcon 2: Galactic Conquest and BREAKFINITY

Hurrican - Port of Hurrican

Isotope 244 Collection - Port of Machines at War 3 and Land Air Sea Warfare

JetMan 3D - Fanmade remake of Jetpac for ZX Spectrum

jfduke3d-vita - Port of JFDuke3D (Duke Nukem 3D sourceport)

jfsw-vita - Port of JFSW (Shadow Warrior Classic sourceport)

Lugaru HD - Port of Lugaru

Mass Effect Infiltrator Vita - Port of Mass Effect: Infiltrator

Nanosaur Vita - Port of Nanosaur

Nazi Zombies Portable - Port of Nazi Zombies Portable

[Neverball Vita](https://www.rinnegatamante.eu/

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言