Path: blob/21.2-virgl/src/panfrost/util/pan_lower_framebuffer.h
4560 views
/*1* Copyright (C) 2020 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*/2526#ifndef __PAN_LOWER_FRAMEBUFFER_H27#define __PAN_LOWER_FRAMEBUFFER_H2829#include "compiler/nir/nir.h"30#include "util/format/u_format.h"3132/* NATIVE formats can use a typed load/store. PACK formats cannot but can use a33* typed pack/unpack instruction. SOFTWARE formats are lowered */3435enum pan_format_class {36PAN_FORMAT_NATIVE,37PAN_FORMAT_PACK,38PAN_FORMAT_SOFTWARE39};4041nir_alu_type pan_unpacked_type_for_format(const struct util_format_description *desc);42enum pan_format_class pan_format_class_load(const struct util_format_description *desc, unsigned quirks);43enum pan_format_class pan_format_class_store(const struct util_format_description *desc, unsigned quirks);4445bool pan_lower_framebuffer(nir_shader *shader, const enum pipe_format *rt_fmts,46bool is_blend, unsigned quirks);4748#endif495051