iris: Fall back to 1x1x1 null surface if no framebuffer supplied
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 24 Oct 2018 21:16:38 +0000 (14:16 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:09 +0000 (10:26 -0800)
If the state tracker never gave us the framebuffer dimensions via
a set_framebuffer_state() call, just fall back to the unbound texture
null surface, which is 1x1x1.  Otherwise we'd use a NULL resource
(no pun intended).

src/gallium/drivers/iris/iris_state.c

index 92589ea588c75806db88df91783efb75a8a3ec64..d16f68a1d1cef523c9216ed293f20fad1d41eac6 100644 (file)
@@ -3354,6 +3354,10 @@ use_null_surface(struct iris_batch *batch, struct iris_context *ice)
 static uint32_t
 use_null_fb_surface(struct iris_batch *batch, struct iris_context *ice)
 {
+   /* If set_framebuffer_state() was never called, fall back to 1x1x1 */
+   if (!ice->state.null_fb.res)
+      return use_null_surface(batch, ice);
+
    struct iris_bo *state_bo = iris_resource_bo(ice->state.null_fb.res);
 
    iris_use_pinned_bo(batch, state_bo, false);