st/glsl_to_tgsi: add ARB_get_program_binary support using TGSI
This resolves a game bug in Dead Island. The game doesn't properly handle ARB_get_program_binary with 0 supported formats, and ends up crashing. This will enable ARB_get_program_binary binary support for any driver that currently enables the on-disk shader cache. Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85564
This commit is contained in:
@@ -74,6 +74,7 @@
|
||||
#include "st_pbo.h"
|
||||
#include "st_program.h"
|
||||
#include "st_sampler_view.h"
|
||||
#include "st_shader_cache.h"
|
||||
#include "st_vdpau.h"
|
||||
#include "st_texture.h"
|
||||
#include "pipe/p_context.h"
|
||||
@@ -760,4 +761,9 @@ st_init_driver_functions(struct pipe_screen *screen,
|
||||
functions->SetBackgroundContext = st_set_background_context;
|
||||
functions->GetDriverUuid = st_get_device_uuid;
|
||||
functions->GetDeviceUuid = st_get_driver_uuid;
|
||||
|
||||
/* 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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user