i965: Make the miptree clear color setter take a gl_color_union

We want to hide the internal details of how the miptree's clear color
is calculated.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Nanley Chery 2018-03-28 18:06:58 -07:00
parent 3dbb49a978
commit 1d94aa1987
3 changed files with 7 additions and 6 deletions

View File

@ -1235,12 +1235,9 @@ do_single_blorp_clear(struct brw_context *brw, struct gl_framebuffer *fb,
if (can_fast_clear) {
const enum isl_aux_state aux_state =
intel_miptree_get_aux_state(irb->mt, irb->mt_level, irb->mt_layer);
union isl_color_value clear_color =
brw_meta_convert_fast_clear_color(brw, irb->mt,
&ctx->Color.ClearColor);
bool same_clear_color =
!intel_miptree_set_clear_color(brw, irb->mt, clear_color);
!intel_miptree_set_clear_color(brw, irb->mt, &ctx->Color.ClearColor);
/* If the buffer is already in INTEL_FAST_CLEAR_STATE_CLEAR, the clear
* is redundant and can be skipped.

View File

@ -36,6 +36,7 @@
#include "brw_blorp.h"
#include "brw_context.h"
#include "brw_meta_util.h"
#include "brw_state.h"
#include "main/enums.h"
@ -3808,8 +3809,11 @@ intel_miptree_get_aux_isl_usage(const struct brw_context *brw,
bool
intel_miptree_set_clear_color(struct brw_context *brw,
struct intel_mipmap_tree *mt,
union isl_color_value clear_color)
const union gl_color_union *color)
{
const union isl_color_value clear_color =
brw_meta_convert_fast_clear_color(brw, mt, color);
if (memcmp(&mt->fast_clear_color, &clear_color, sizeof(clear_color)) != 0) {
mt->fast_clear_color = clear_color;
brw->ctx.NewDriverState |= BRW_NEW_AUX_STATE;

View File

@ -734,7 +734,7 @@ intel_miptree_sample_with_hiz(struct brw_context *brw,
bool
intel_miptree_set_clear_color(struct brw_context *brw,
struct intel_mipmap_tree *mt,
union isl_color_value clear_color);
const union gl_color_union *color);
bool
intel_miptree_set_depth_clear_value(struct brw_context *brw,