From 07029efa5da77bdcfe276744f678bcb6d600e83c Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 16 Feb 2021 11:44:14 -0500 Subject: [PATCH] gallium/trace: add a pipe_screen::get_compiler_options method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit this fixes crashes on startup Fixes: a3512ddfdf7 ("st/mesa: don't enable NV_copy_depth_to_color if NIR doesn't support FP64") fixes mesa/mesa#4312 Reviewed-by: Marek Olšák Part-of: (cherry picked from commit 4feca7ecde9f5486a55dffe8d6899d1114b799bf) --- .pick_status.json | 2 +- src/gallium/auxiliary/driver_trace/tr_screen.c | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 3b97c9b3ef7..dc1222fe5a2 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -607,7 +607,7 @@ "description": "gallium/trace: add a pipe_screen::get_compiler_options method", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "a3512ddfdf7ff1dff0920568102bfaef99ab498e" }, diff --git a/src/gallium/auxiliary/driver_trace/tr_screen.c b/src/gallium/auxiliary/driver_trace/tr_screen.c index 143161b70b2..fc2e68f52bb 100644 --- a/src/gallium/auxiliary/driver_trace/tr_screen.c +++ b/src/gallium/auxiliary/driver_trace/tr_screen.c @@ -103,6 +103,18 @@ trace_screen_get_device_vendor(struct pipe_screen *_screen) } +static const void * +trace_screen_get_compiler_options(struct pipe_screen *_screen, + enum pipe_shader_ir ir, + enum pipe_shader_type shader) +{ + struct trace_screen *tr_scr = trace_screen(_screen); + struct pipe_screen *screen = tr_scr->screen; + + return screen->get_compiler_options(screen, ir, shader); +} + + static struct disk_cache * trace_screen_get_disk_shader_cache(struct pipe_screen *_screen) { @@ -707,6 +719,7 @@ trace_screen_create(struct pipe_screen *screen) tr_scr->base.get_name = trace_screen_get_name; tr_scr->base.get_vendor = trace_screen_get_vendor; tr_scr->base.get_device_vendor = trace_screen_get_device_vendor; + SCR_INIT(get_compiler_options); SCR_INIT(get_disk_shader_cache); tr_scr->base.get_param = trace_screen_get_param; tr_scr->base.get_shader_param = trace_screen_get_shader_param;