From 5f3eb6ef293f139f3504cb302b290a291629612d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timur=20Krist=C3=B3f?= Date: Thu, 29 Aug 2019 01:23:37 +0200 Subject: [PATCH] st/nine: Properly initialize GLSL types for NIR shaders. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit NIR shaders use GLSL types (note: these live outside libglsl), and nine needs to properly initialize these just like the other state trackers. This fixes an assertion failure when TTN is used. Signed-off-by: Timur Kristóf --- src/gallium/state_trackers/nine/device9.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gallium/state_trackers/nine/device9.c b/src/gallium/state_trackers/nine/device9.c index 6d29378..0e3333a 100644 --- a/src/gallium/state_trackers/nine/device9.c +++ b/src/gallium/state_trackers/nine/device9.c @@ -51,6 +51,7 @@ #include "util/u_surface.h" #include "util/u_upload_mgr.h" #include "hud/hud_context.h" +#include "compiler/glsl_types.h" #include "cso_cache/cso_context.h" @@ -144,6 +145,9 @@ NineDevice9_ctor( struct NineDevice9 *This, if (FAILED(hr)) { return hr; } + /* NIR shaders need to use GLSL types so let's initialize them here */ + glsl_type_singleton_init_or_ref(); + list_inithead(&This->update_buffers); list_inithead(&This->update_textures); list_inithead(&This->managed_buffers); @@ -583,6 +587,7 @@ NineDevice9_dtor( struct NineDevice9 *This ) if (This->d3d9) { IDirect3D9_Release(This->d3d9); } NineUnknown_dtor(&This->base); + glsl_type_singleton_decref(); } struct pipe_screen * -- 2.7.4