From e874274d0847733b2ae6c2efb911145d2da6e6b6 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 21 May 2014 14:09:25 -0700 Subject: [PATCH] i965: Add a comment about null renderbuffer surfaces and why they exist. I noticed this when trying to find comments about pull constant buffers. Reviewed-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 8 ++++++++ src/mesa/drivers/dri/i965/gen7_wm_surface_state.c | 8 ++++++++ src/mesa/drivers/dri/i965/gen8_surface_state.c | 8 ++++++-- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c index d3bc797..c0756ad 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -501,6 +501,14 @@ const struct brw_tracked_state brw_wm_pull_constants = { .emit = brw_upload_wm_pull_constants, }; +/** + * Creates a null renderbuffer surface. + * + * This is used when the shader doesn't write to any color output. An FB + * write to target 0 will still be emitted, because that's how the thread is + * terminated (and computed depth is returned), so we need to have the + * hardware discard the target 0 color output.. + */ static void brw_update_null_renderbuffer_surface(struct brw_context *brw, unsigned int unit) { diff --git a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c index 60849e0..01120af 100644 --- a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c @@ -393,6 +393,14 @@ gen7_create_raw_surface(struct brw_context *brw, drm_intel_bo *bo, true /* rw */); } +/** + * Creates a null renderbuffer surface. + * + * This is used when the shader doesn't write to any color output. An FB + * write to target 0 will still be emitted, because that's how the thread is + * terminated (and computed depth is returned), so we need to have the + * hardware discard the target 0 color output.. + */ static void gen7_update_null_renderbuffer_surface(struct brw_context *brw, unsigned unit) { diff --git a/src/mesa/drivers/dri/i965/gen8_surface_state.c b/src/mesa/drivers/dri/i965/gen8_surface_state.c index 87401b7..40eb2ea 100644 --- a/src/mesa/drivers/dri/i965/gen8_surface_state.c +++ b/src/mesa/drivers/dri/i965/gen8_surface_state.c @@ -266,8 +266,12 @@ gen8_create_raw_surface(struct brw_context *brw, drm_intel_bo *bo, } /** - * Create the constant buffer surface. Vertex/fragment shader constants will be - * read from this buffer with Data Port Read instructions/messages. + * Creates a null renderbuffer surface. + * + * This is used when the shader doesn't write to any color output. An FB + * write to target 0 will still be emitted, because that's how the thread is + * terminated (and computed depth is returned), so we need to have the + * hardware discard the target 0 color output.. */ static void gen8_update_null_renderbuffer_surface(struct brw_context *brw, unsigned unit) -- 2.7.4