From c6b70a0eaea63e824e3733b16cb90e1595b01c1d Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Tue, 13 Feb 2018 14:25:51 +1100 Subject: [PATCH] st: add NIR GL_ARB_get_program_binary support MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák --- src/mesa/state_tracker/st_context.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c index 7e721572e0a..e23f9fd70b0 100644 --- a/src/mesa/state_tracker/st_context.c +++ b/src/mesa/state_tracker/st_context.c @@ -758,6 +758,17 @@ st_init_driver_functions(struct pipe_screen *screen, /* GL_ARB_get_program_binary */ functions->GetProgramBinaryDriverSHA1 = st_get_program_binary_driver_sha1; - functions->ProgramBinarySerializeDriverBlob = st_serialise_tgsi_program; - functions->ProgramBinaryDeserializeDriverBlob = st_deserialise_tgsi_program; + + enum pipe_shader_ir preferred_ir = (enum pipe_shader_ir) + screen->get_shader_param(screen, PIPE_SHADER_VERTEX, + PIPE_SHADER_CAP_PREFERRED_IR); + if (preferred_ir == PIPE_SHADER_IR_NIR) { + functions->ProgramBinarySerializeDriverBlob = st_serialise_nir_program; + functions->ProgramBinaryDeserializeDriverBlob = + st_deserialise_nir_program; + } else { + functions->ProgramBinarySerializeDriverBlob = st_serialise_tgsi_program; + functions->ProgramBinaryDeserializeDriverBlob = + st_deserialise_tgsi_program; + } } -- 2.30.2