mesa/src/compiler
Eduardo Lima Mitev 59f458cd87 glsl: Add 16-bit types
Adds new INT16, UINT16 and FLOAT16 base types.

The corresponding GL types for half floats were reused from the
AMD_gpu_shader_half_float extension. The int16 and uint16 types come from
NV_gpu_shader_5 extension.

This adds the builtins and the lexer support.

To avoid a bunch of warnings due to cases not handled in switch, the
new types have been added to a few places using same behavior as
their 32-bit counterparts, except for a few trivial cases where they are
already handled properly. Subsequent patches in this set will provide
correct 16-bit implementations when needed.

v2: * Use FLOAT16 instead of HALF_FLOAT as name of the base type.
    * Removed float16_t from builtin types.
    * Don't copy 16-bit types as if they were 32-bit values in
      copy_constant_to_storage().
    * Use get_scalar_type() instead of adding a new custom switch
      statement.
    (Jason Ekstrand)
v3: Use GL_FLOAT16_NV instead of GL_HALF_FLOAT for consistency
    (Ilia Mirkin)
v4: Add missing 16-bit base types support in glsl_to_nir (Eduardo Lima).
v5: Fix coding style (Topi Poholainen).

Signed-off-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Signed-off-by: Eduardo Lima <elima@igalia.com>
Signed-off-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-12-06 08:57:18 +01:00
..
glsl glsl: Add 16-bit types 2017-12-06 08:57:18 +01:00
nir nir: Add a vulkan_resource_reindex intrinsic 2017-12-05 22:01:54 -08:00
spirv spirv: Allow OpPtrAccessChain for block indices 2017-12-05 22:01:54 -08:00
.gitignore
Android.glsl.gen.mk Android: clean-up trailing '\' in make variables 2017-03-22 17:52:06 +00:00
Android.glsl.mk android: glsl: build shader cache sources 2017-02-20 16:30:37 +00:00
Android.mk
Android.nir.gen.mk Android: fix spirv_info.c generation 2017-07-21 08:48:45 +03:00
Android.nir.mk android: fix libmesa_nir build 2017-07-21 08:47:56 +03:00
blob.c blob: Don't set overrun if reading 0 bytes at end of data 2017-10-31 23:36:54 -07:00
blob.h blob: Use intptr_t instead of ssize_t 2017-10-13 15:02:34 -07:00
builtin_type_macros.h glsl: Add 16-bit types 2017-12-06 08:57:18 +01:00
glsl_types.cpp glsl: Add 16-bit types 2017-12-06 08:57:18 +01:00
glsl_types.h glsl: Add 16-bit types 2017-12-06 08:57:18 +01:00
Makefile.am compiler: Add $(WNO_OVERRIDE_INIT) to AM_CFLAGS 2017-08-29 15:20:57 -07:00
Makefile.glsl.am glsl: automake: export abs_builddir for the tests 2017-03-28 15:31:22 +01:00
Makefile.nir.am spirv: Generate spirv_info.c 2017-07-18 09:43:12 -07:00
Makefile.sources nir: add varying array splitting pass 2017-12-04 09:10:30 +11:00
meson.build compiler: Move blob up a level 2017-10-12 21:47:06 -07:00
nir_types.cpp compiler/nir_types: Handle vectors in glsl_get_array_element 2017-11-07 10:41:24 -08:00
nir_types.h nir: add glsl_channel_type() helper 2017-10-16 09:06:53 +11:00
SConscript
SConscript.glsl
SConscript.nir
shader_enums.c mesa: remove unused vertex attrib WEIGHT 2017-11-25 17:17:52 +01:00
shader_enums.h mesa: shrink VERT_ATTRIB bitfields to 32 bits 2017-11-25 17:18:22 +01:00
shader_info.h nir: fill outputs_read field and add patch outputs read (v2) 2017-11-27 13:50:03 +10:00