iris: fix crash when binding optional shader for the first time
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 24 Aug 2018 04:21:04 +0000 (21:21 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:08 +0000 (10:26 -0800)
src/gallium/drivers/iris/iris_program_cache.c

index a27a4b9a83c89d9dea341d94b74e933ac1f6ed23..0006e8e8bea6b496e593f4e396dbeff6404edbb2 100644 (file)
@@ -172,7 +172,9 @@ iris_bind_cached_shader(struct iris_context *ice,
    if (!shader)
       return false;
 
-   if (memcmp(shader, ice->shaders.prog[cache_id], sizeof(*shader)) != 0) {
+   // XXX: why memcmp?
+   if (!ice->shaders.prog[cache_id] ||
+       memcmp(shader, ice->shaders.prog[cache_id], sizeof(*shader)) != 0) {
       ice->shaders.prog[cache_id] = shader;
       ice->state.dirty |= dirty_flag_for_cache(cache_id);
    }