mesa/src/intel/compiler/intel_shader_enums.h

94 lines
2.5 KiB
C
Raw Normal View History

/*
* Copyright 2024 Intel Corporation
* SPDX-License-Identifier: MIT
*/
#ifndef INTEL_SHADER_ENUMS_H
#define INTEL_SHADER_ENUMS_H
#include "util/enum_operators.h"
#ifdef __cplusplus
extern "C" {
#endif
enum intel_msaa_flags {
/** Must be set whenever any dynamic MSAA is used
*
* This flag mostly exists to let us assert that the driver understands
* dynamic MSAA so we don't run into trouble with drivers that don't.
*/
INTEL_MSAA_FLAG_ENABLE_DYNAMIC = (1 << 0),
/** True if the framebuffer is multisampled */
INTEL_MSAA_FLAG_MULTISAMPLE_FBO = (1 << 1),
/** True if this shader has been dispatched per-sample */
INTEL_MSAA_FLAG_PERSAMPLE_DISPATCH = (1 << 2),
/** True if inputs should be interpolated per-sample by default */
INTEL_MSAA_FLAG_PERSAMPLE_INTERP = (1 << 3),
/** True if this shader has been dispatched with alpha-to-coverage */
INTEL_MSAA_FLAG_ALPHA_TO_COVERAGE = (1 << 4),
/** True if this shader has been dispatched coarse
*
* This is intentionally chose to be bit 15 to correspond to the coarse bit
* in the pixel interpolator messages.
*/
INTEL_MSAA_FLAG_COARSE_PI_MSG = (1 << 15),
/** True if this shader has been dispatched coarse
*
* This is intentionally chose to be bit 18 to correspond to the coarse bit
* in the render target messages.
*/
INTEL_MSAA_FLAG_COARSE_RT_WRITES = (1 << 18),
};
MESA_DEFINE_CPP_ENUM_BITFIELD_OPERATORS(intel_msaa_flags)
/**
* @defgroup Tessellator parameter enumerations.
*
* These correspond to the hardware values in 3DSTATE_TE, and are provided
* as part of the tessellation evaluation shader.
*
* @{
*/
enum intel_tess_partitioning {
INTEL_TESS_PARTITIONING_INTEGER = 0,
INTEL_TESS_PARTITIONING_ODD_FRACTIONAL = 1,
INTEL_TESS_PARTITIONING_EVEN_FRACTIONAL = 2,
};
enum intel_tess_output_topology {
INTEL_TESS_OUTPUT_TOPOLOGY_POINT = 0,
INTEL_TESS_OUTPUT_TOPOLOGY_LINE = 1,
INTEL_TESS_OUTPUT_TOPOLOGY_TRI_CW = 2,
INTEL_TESS_OUTPUT_TOPOLOGY_TRI_CCW = 3,
};
enum intel_tess_domain {
INTEL_TESS_DOMAIN_QUAD = 0,
INTEL_TESS_DOMAIN_TRI = 1,
INTEL_TESS_DOMAIN_ISOLINE = 2,
};
/** @} */
enum intel_shader_dispatch_mode {
INTEL_DISPATCH_MODE_4X1_SINGLE = 0,
INTEL_DISPATCH_MODE_4X2_DUAL_INSTANCE = 1,
INTEL_DISPATCH_MODE_4X2_DUAL_OBJECT = 2,
INTEL_DISPATCH_MODE_SIMD8 = 3,
INTEL_DISPATCH_MODE_TCS_SINGLE_PATCH = 0,
INTEL_DISPATCH_MODE_TCS_MULTI_PATCH = 2,
};
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* INTEL_SHADER_ENUMS_H */