Path: blob/21.2-virgl/src/gallium/drivers/panfrost/pan_blend_cso.h
4570 views
/*1* Copyright (C) 2019 Collabora, Ltd.2*3* Permission is hereby granted, free of charge, to any person obtaining a4* copy of this software and associated documentation files (the "Software"),5* to deal in the Software without restriction, including without limitation6* the rights to use, copy, modify, merge, publish, distribute, sublicense,7* and/or sell copies of the Software, and to permit persons to whom the8* Software is furnished to do so, subject to the following conditions:9*10* The above copyright notice and this permission notice (including the next11* paragraph) shall be included in all copies or substantial portions of the12* Software.13*14* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR15* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,16* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL17* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER18* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,19* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE20* SOFTWARE.21*22* Authors (Collabora):23* Alyssa Rosenzweig <[email protected]>24*25*/2627#ifndef __PAN_BLEND_CSO_H28#define __PAN_BLEND_CSO_H2930#include "pan_blend.h"31#include "util/hash_table.h"32#include "nir.h"3334struct panfrost_bo;3536struct pan_blend_info {37unsigned constant_mask : 4;38bool fixed_function : 1;39bool no_colour : 1;40bool load_dest : 1;41bool opaque : 1;42};4344struct panfrost_blend_state {45struct pipe_blend_state base;46struct pan_blend_state pan;47struct pan_blend_info info[PIPE_MAX_COLOR_BUFS];48uint32_t equation[PIPE_MAX_COLOR_BUFS];4950/* info.load presented as a bitfield for draw call hot paths */51unsigned load_dest_mask : PIPE_MAX_COLOR_BUFS;52};5354mali_ptr55panfrost_get_blend(struct panfrost_batch *batch, unsigned rt, struct panfrost_bo **bo, unsigned *shader_offset);5657#endif585960