[Mesa-dev] [PATCH v2 00/17] i965 ARB_get_program_binary support
Jordan Justen
jordan.l.justen at intel.com
Mon Nov 20 22:27:26 UTC 2017
git://people.freedesktop.org/~jljusten/mesa i965-get-program-binary-v2
v2:
* GL_MESA_program_binary_formats published in Khronos OpenGL-Registry
* Drop compression. (Tim)
v1:
* https://lists.freedesktop.org/archives/mesa-dev/2017-November/176095.html
This series adds i965 support for ARB_get_program_binary with one
supported format. We make use of the glsl program serialization
(introduced with shader cache) along with nir serialization. Later we
can add support for saving the gen binary program as well.
Reviews for patches:
docs/specs: Add GL_MESA_program_binary_formats extension spec
Cc: Ian Romanick <idr at freedesktop.org>
Cc: Timothy Arceri <tarceri at itsqueeze.com>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
include: Add GL_MESA_program_binary_formats to GL/GLES2 ext.h files
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
glsl: Split out shader program serialization
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
main, glsl: Add UniformDataDefaults which stores uniform defaults
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
i965: Add brw_program_deserialize_nir
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
i965: Free serialized nir after deserializing
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
i965: Add brw_program_serialize_nir
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
i965: Fix memory leak when serializing nir
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
main: Allow non-zero NUM_PROGRAM_BINARY_FORMATS
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
main: Support 1 Mesa format with get for GL_PROGRAM_BINARY_FORMATS
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
main: Support calling driver for GL_PROGRAM_BINARY_LENGTH
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
main: Support calling driver for GetProgramBinary
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
main: Support calling driver for ProgramBinary
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
main: Clear shader program data whenever ProgramBinary is called
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
util: Add Mesa ARB_get_program_binary helper functions
i965: Add ARB_get_program_binary support using nir_serialization
docs: Update GL_ARB_get_program_binary docs to support 1 format
Jordan Justen (17):
docs/specs: Add GL_MESA_program_binary_formats extension spec
include: Add GL_MESA_program_binary_formats to GL/GLES2 ext.h files
glsl: Split out shader program serialization
main, glsl: Add UniformDataDefaults which stores uniform defaults
i965: Add brw_program_deserialize_nir
i965: Free serialized nir after deserializing
i965: Add brw_program_serialize_nir
i965: Fix memory leak when serializing nir
main: Allow non-zero NUM_PROGRAM_BINARY_FORMATS
main: Support 1 Mesa format with get for GL_PROGRAM_BINARY_FORMATS
main: Support calling driver for GL_PROGRAM_BINARY_LENGTH
main: Support calling driver for GetProgramBinary
main: Support calling driver for ProgramBinary
main: Clear shader program data whenever ProgramBinary is called
util: Add Mesa ARB_get_program_binary helper functions
i965: Add ARB_get_program_binary support using nir_serialization
docs: Update GL_ARB_get_program_binary docs to support 1 format
docs/features.txt | 2 +-
docs/relnotes/17.4.0.html | 1 +
docs/specs/MESA_program_binary_formats.txt | 88 ++
docs/specs/enums.txt | 3 +
include/GL/glext.h | 5 +
include/GLES2/gl2ext.h | 5 +
src/compiler/Makefile.sources | 2 +
src/compiler/glsl/link_uniform_initializers.cpp | 2 +
src/compiler/glsl/link_uniforms.cpp | 3 +
src/compiler/glsl/meson.build | 2 +
src/compiler/glsl/serialize.cpp | 1252 +++++++++++++++++++++++
src/compiler/glsl/serialize.h | 50 +
src/compiler/glsl/shader_cache.cpp | 1185 +--------------------
src/compiler/shader_info.h | 1 +
src/mapi/glapi/registry/gl.xml | 7 +-
src/mesa/drivers/dri/i965/Makefile.sources | 1 +
src/mesa/drivers/dri/i965/brw_context.c | 9 +
src/mesa/drivers/dri/i965/brw_context.h | 16 +
src/mesa/drivers/dri/i965/brw_disk_cache.c | 31 +-
src/mesa/drivers/dri/i965/brw_link.cpp | 9 +-
src/mesa/drivers/dri/i965/brw_program.c | 35 +
src/mesa/drivers/dri/i965/brw_program.h | 7 +
src/mesa/drivers/dri/i965/brw_program_binary.c | 187 ++++
src/mesa/drivers/dri/i965/meson.build | 1 +
src/mesa/main/dd.h | 20 +
src/mesa/main/get.c | 9 +
src/mesa/main/get_hash_params.py | 4 +-
src/mesa/main/mtypes.h | 14 +
src/mesa/main/shaderapi.c | 64 +-
src/util/Makefile.sources | 2 +
src/util/meson.build | 2 +
src/util/program_binary.c | 149 +++
src/util/program_binary.h | 70 ++
33 files changed, 2000 insertions(+), 1238 deletions(-)
create mode 100644 docs/specs/MESA_program_binary_formats.txt
create mode 100644 src/compiler/glsl/serialize.cpp
create mode 100644 src/compiler/glsl/serialize.h
create mode 100644 src/mesa/drivers/dri/i965/brw_program_binary.c
create mode 100644 src/util/program_binary.c
create mode 100644 src/util/program_binary.h
--
2.14.1
More information about the mesa-dev
mailing list