Ivan Avdeev
a251600c8a
engine: common: imagelib: add KTX2 support ( #1455 )
...
* engine: common: imagelib: add KTX2 support
Adds basic KTX2 support for a few compressed formats. KTX2 essentially
is a Vulkan-centric texture format that supports literally hundreds of
pixel formats.
For now only support for these is added:
- `VK_FORMAT_BC4_UNORM_BLOCK`
- `VK_FORMAT_BC4_SNORM_BLOCK`
- `VK_FORMAT_BC5_UNORM_BLOCK`
- `VK_FORMAT_BC5_SNORM_BLOCK`
- `VK_FORMAT_BC6H_UFLOAT_BLOCK`
- `VK_FORMAT_BC6H_SFLOAT_BLOCK`
- `VK_FORMAT_BC7_UNORM_BLOCK`
- `VK_FORMAT_BC7_SRGB_BLOCK`
Adding more formats is relatively straightforward:
- Copy format definition from `VkFormat` enum in `vulkan_core.h`
- Add a new definition into `pixformat_t` enum.
- Add format size calculation into `Image_ComputeSize()`
While we're at it, also adds a few new formats to DDS:
- BC4_UNORM -- PF_BC4_UNSIGNED
- BC4_SNORM -- PF_BC4_SIGNED
- BC5_UNORM -- PF_BC5_UNSIGNED
- BC5_SNORM -- PF_BC5_SIGNED
- BC7 is expanded into BC7_UNORM and BC7_SRGB
ref_gl and ref_soft code is updated where it made sense. But not tested
really. Support for these formats has been tested with ref_vk.
* address spaces-vs-parentheses formatting where noticed
* parenthesize sizeofs
* move ktx2.h to imagelib as img_ktx2.h; massage it a bit
* use SetBits() instead of |=
* remove stale TODO comments
1 year ago
mittorn
a2b992d865
ref_gl: fix codestyle
1 year ago
mittorn
ddf3f2ffdb
gl2shim: Allow drawing huge QUADS sequences by splitting drawcalls on overflow
1 year ago
Alibek Omarov
2454e87509
ref_gl: gl2shim: refactoring, add missing spaces in parentheses and ternary ops, remove singleline multiple assignments, use bitset macros
1 year ago
mittorn
0dc44249a2
ref_gl: fix XASH_GL_STATIC build
1 year ago
mittorn
150cbfa4de
ref_gl: do not trust REFAPI context version, get it from OpenGL anyway
1 year ago
mittorn
c0b068d81b
ref_gl: add workarounds for detecting extensions correctly on gles1/gles2 without wrapper (swiftshader works now)
1 year ago
mittorn
fbc312b6cf
gl2shim: remove float suffix in shaders, that makes glsl100 work in swiftshader
1 year ago
mittorn
342e0d3e2e
gl2shim: add glsl100 support
1 year ago
mittorn
202b228691
gl2shim: correct allocation/cleanup
1 year ago
mittorn
c9c1286803
ref_gl: fix typo
1 year ago
mittorn
eab98b0eda
gl2shim: dynamic extension checking and autoconfiguration
1 year ago
mittorn
35be80fc21
ref_gl: request gl1.1 if compatibility profile unavailiable, this fixes launching with GL <= 2.0, improve old version extension detection
1 year ago
mittorn
c7dd9d6437
ref_gl: init r_temppool before InitExtensions, fix extension string allocation
1 year ago
mittorn
d378878c91
gl2shim: try fix getting program link log
1 year ago
mittorn
4a2f8cafcd
gl2shim: try fix errors in ViZual ZtudiO
1 year ago
mittorn
d254bac16b
ref_gl: integrate gl2shim extensions
1 year ago
mittorn
e23b632ce5
ref_gl: add missing non-arb shader functions
1 year ago
mittorn
2f321b1471
ref_gl: implement minimum inclusion version for GL extensions, implement quering extensions on core profile
1 year ago
mittorn
0265e88d8f
gl2shim: fix wrong color vertex
1 year ago
mittorn
4114d2f24d
gl2shim: more refactoring
1 year ago
mittorn
8124035763
ref_gl: try fix psvita
1 year ago
mittorn
96127c6eb0
gl2shim: make shaders code more portable
1 year ago
mittorn
cf65a39b83
gl2shim: refactoring
1 year ago
mittorn
0341f96b70
gl2shim: use IBO for quads
1 year ago
mittorn
c95d91cfe3
gl2shim: limit begin-end chain length, cycle incremental buffers
1 year ago
mittorn
cbd10c6279
gl2shim: improve shader version handling, fix particle issues
1 year ago
mittorn
5df9e57743
gl2shim: support incremental non-persistent buffers for arrays
1 year ago
mittorn
c178022fb5
gl2shim: persistent incremental streaming buffers, buffer cycling support
1 year ago
mittorn
724c29d711
gl2shim: implement fallback vbo, glDrawRangeElements with non-vbo buffer works now on core contexts
1 year ago
mittorn
74a2dbeb91
gl2shim: batcher experiments (UGLY, DO NOT USE), fix bad shader bindings, Draw QUADS with TRIFAN when possible
1 year ago
mittorn
5d20d24ebc
gl2shim: simple matrix invalidation, do not calculate MVP every drawcall
1 year ago
mittorn
0e2fc277c8
gl2shim: bind dummy VAO on DrawElements implementation on glcore, this generates GL Errors, but renders fine on mesa
1 year ago
mittorn
1505740b73
ref_gl: fix enabling multitexturing on GLES
1 year ago
mittorn
6bad07b39d
gl2shim: support low (<130) shaders
1 year ago
mittorn
f85437dfc5
gl2shim: implement client arrays (not in glcore/vao mode), make studio/world array render work
1 year ago
mittorn
c765261db6
ref_gl: fix late studio cvars registration, enable DrawRangeElements in GLES contexts
1 year ago
mittorn
73087ead2d
ref_gl: fix build with XASH_GL_STATIC, avoid using ARB shader extension on core context
1 year ago
mittorn
8c88e82709
gl2shim: support more GLSL versions
1 year ago
mittorn
40dd6e0234
gl2shim: Cleanup warnings, use APIENTRY declarations, stub unsupported functions
1 year ago
mittorn
eb23b226cc
Workaround core context issues
1 year ago
mittorn
676526a518
ref_gl: fix creating core context, support core in gl2shim by creating dumb array object
1 year ago
mittorn
7e0bd86b65
ref_gl: allow enabling XASH_GLES without wrapper, add ref_gles3compat, wrap gles functions in gl2wrap when XASH_GLES enabled
1 year ago
mittorn
97489635af
gl2shim: limited matrix support
1 year ago
mittorn
a9ea3976a7
ref_gl: introduce gl2_shim based on vgl_shim for future limited core/gles context support (SLOW, still needs ffp for matrix operations)
1 year ago
Alibek Omarov
de19d78571
ref: fix late registration of studio cvars (thanks, @mittorn )
1 year ago
mittorn
287381d5ca
ref_gl: remove complete useless macro, enable VBO under option
1 year ago
Alibek Omarov
a738b2a50b
ref: restore missing PARM_TEX_MEMORY RenderAPI parameter
1 year ago
Alibek Omarov
8eef212726
ref: gl: fix compile
1 year ago
Velaron
1589defda1
ref: gl: don't create cl_righthand cvar
1 year ago