* E.g. the state tracker could have a simpler path which maps textures and
* does read/modify/write cycles on them directly, and a more complicated
* path which uses minimal read and write transfers.
+ *
+ * This flag supresses implicit "DISCARD" for buffer_subdata.
*/
PIPE_TRANSFER_MAP_DIRECTLY = (1 << 2),
#define PIPE_RESOURCE_FLAG_MAP_COHERENT (1 << 1)
#define PIPE_RESOURCE_FLAG_TEXTURING_MORE_LIKELY (1 << 2)
#define PIPE_RESOURCE_FLAG_SPARSE (1 << 3)
+#define PIPE_RESOURCE_FLAG_SINGLE_THREAD_USE (1 << 4)
#define PIPE_RESOURCE_FLAG_DRV_PRIV (1 << 8) /* driver/winsys private */
#define PIPE_RESOURCE_FLAG_ST_PRIV (1 << 24) /* state-tracker/winsys private */
PIPE_SWIZZLE_MAX, /**< Number of enums counter (must be last) */
};
+/**
+ * Viewport swizzles
+ */
+enum pipe_viewport_swizzle {
+ PIPE_VIEWPORT_SWIZZLE_POSITIVE_X,
+ PIPE_VIEWPORT_SWIZZLE_NEGATIVE_X,
+ PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y,
+ PIPE_VIEWPORT_SWIZZLE_NEGATIVE_Y,
+ PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z,
+ PIPE_VIEWPORT_SWIZZLE_NEGATIVE_Z,
+ PIPE_VIEWPORT_SWIZZLE_POSITIVE_W,
+ PIPE_VIEWPORT_SWIZZLE_NEGATIVE_W,
+};
+
#define PIPE_TIMEOUT_INFINITE 0xffffffffffffffffull
*/
enum pipe_cap
{
+ PIPE_CAP_GRAPHICS,
PIPE_CAP_NPOT_TEXTURES,
PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS,
PIPE_CAP_ANISOTROPIC_FILTER,
PIPE_CAP_MAX_RENDER_TARGETS,
PIPE_CAP_OCCLUSION_QUERY,
PIPE_CAP_QUERY_TIME_ELAPSED,
+ PIPE_CAP_TEXTURE_SHADOW_MAP,
PIPE_CAP_TEXTURE_SWIZZLE,
PIPE_CAP_MAX_TEXTURE_2D_SIZE,
PIPE_CAP_MAX_TEXTURE_3D_LEVELS,
PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS,
PIPE_CAP_TEXTURE_MIRROR_CLAMP,
PIPE_CAP_BLEND_EQUATION_SEPARATE,
- PIPE_CAP_SM3,
PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS,
PIPE_CAP_PRIMITIVE_RESTART,
/** blend enables and write masks per rendertarget */
PIPE_CAP_MULTI_DRAW_INDIRECT,
PIPE_CAP_MULTI_DRAW_INDIRECT_PARAMS,
PIPE_CAP_TGSI_FS_POSITION_IS_SYSVAL,
+ PIPE_CAP_TGSI_FS_POINT_IS_SYSVAL,
PIPE_CAP_TGSI_FS_FACE_IS_INTEGER_SYSVAL,
PIPE_CAP_SHADER_BUFFER_OFFSET_ALIGNMENT,
PIPE_CAP_INVALIDATE_BUFFER,
PIPE_CAP_COMPUTE_SHADER_DERIVATIVES,
PIPE_CAP_TGSI_SKIP_SHRINK_IO_ARRAYS,
PIPE_CAP_IMAGE_LOAD_FORMATTED,
- PIPE_CAP_MAX_FRAMES_IN_FLIGHT,
+ PIPE_CAP_THROTTLE,
PIPE_CAP_DMABUF,
- PIPE_CAP_PREFER_COMPUTE_BLIT_FOR_MULTIMEDIA,
+ PIPE_CAP_PREFER_COMPUTE_FOR_MULTIMEDIA,
PIPE_CAP_FRAGMENT_SHADER_INTERLOCK,
PIPE_CAP_FBFETCH_COHERENT,
PIPE_CAP_CS_DERIVED_SYSTEM_VALUES_SUPPORTED,
PIPE_CAP_ATOMIC_FLOAT_MINMAX,
PIPE_CAP_TGSI_DIV,
+ PIPE_CAP_FRAGMENT_SHADER_TEXTURE_LOD,
+ PIPE_CAP_FRAGMENT_SHADER_DERIVATIVES,
+ PIPE_CAP_VERTEX_SHADER_SATURATE,
+ PIPE_CAP_TEXTURE_SHADOW_LOD,
+ PIPE_CAP_SHADER_SAMPLES_IDENTICAL,
+ PIPE_CAP_TGSI_ATOMINC_WRAP,
+ PIPE_CAP_PREFER_IMM_ARRAYS_AS_CONSTBUF,
+ PIPE_CAP_GL_SPIRV,
+ PIPE_CAP_GL_SPIRV_VARIABLE_POINTERS,
+ PIPE_CAP_DEMOTE_TO_HELPER_INVOCATION,
+ PIPE_CAP_TGSI_TG4_COMPONENT_IN_SWIZZLE,
+ PIPE_CAP_FLATSHADE,
+ PIPE_CAP_ALPHA_TEST,
+ PIPE_CAP_POINT_SIZE_FIXED,
+ PIPE_CAP_TWO_SIDED_COLOR,
+ PIPE_CAP_CLIP_PLANES,
+ PIPE_CAP_MAX_VERTEX_BUFFERS,
+ PIPE_CAP_OPENCL_INTEGER_FUNCTIONS,
+ PIPE_CAP_INTEGER_MULTIPLY_32X16,
+ /* Turn draw, dispatch, blit into NOOP */
+ PIPE_CAP_FRONTEND_NOOP,
+ PIPE_CAP_NIR_IMAGES_AS_DEREF,
+ PIPE_CAP_PACKED_STREAM_OUTPUT,
+ PIPE_CAP_VIEWPORT_TRANSFORM_LOWERED,
+ PIPE_CAP_PSIZ_CLAMPED,
+ PIPE_CAP_DRAW_INFO_START_WITH_USER_INDICES,
+ PIPE_CAP_GL_BEGIN_END_BUFFER_SIZE,
+ PIPE_CAP_VIEWPORT_SWIZZLE,
+ PIPE_CAP_SYSTEM_SVM,
+ PIPE_CAP_VIEWPORT_MASK,
};
/**
{
PIPE_ENDIAN_LITTLE = 0,
PIPE_ENDIAN_BIG = 1,
-#if defined(PIPE_ARCH_LITTLE_ENDIAN)
+#if UTIL_ARCH_LITTLE_ENDIAN
PIPE_ENDIAN_NATIVE = PIPE_ENDIAN_LITTLE
-#elif defined(PIPE_ARCH_BIG_ENDIAN)
+#elif UTIL_ARCH_BIG_ENDIAN
PIPE_ENDIAN_NATIVE = PIPE_ENDIAN_BIG
#endif
};
PIPE_SHADER_CAP_TGSI_LDEXP_SUPPORTED,
PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTERS,
PIPE_SHADER_CAP_MAX_HW_ATOMIC_COUNTER_BUFFERS,
- PIPE_SHADER_CAP_SCALAR_ISA,
};
/**
PIPE_SHADER_IR_TGSI = 0,
PIPE_SHADER_IR_NATIVE,
PIPE_SHADER_IR_NIR,
+ PIPE_SHADER_IR_NIR_SERIALIZED,
};
/**
PIPE_COMPUTE_CAP_MAX_VARIABLE_THREADS_PER_BLOCK,
};
+/**
+ * Resource parameters. They can be queried using
+ * pipe_screen::get_resource_param.
+ */
+enum pipe_resource_param
+{
+ PIPE_RESOURCE_PARAM_NPLANES,
+ PIPE_RESOURCE_PARAM_STRIDE,
+ PIPE_RESOURCE_PARAM_OFFSET,
+ PIPE_RESOURCE_PARAM_MODIFIER,
+ PIPE_RESOURCE_PARAM_HANDLE_TYPE_SHARED,
+ PIPE_RESOURCE_PARAM_HANDLE_TYPE_KMS,
+ PIPE_RESOURCE_PARAM_HANDLE_TYPE_FD,
+};
+
/**
* Types of parameters for pipe_context::set_context_param.
*/
struct pipe_query_data_timestamp_disjoint
{
uint64_t frequency;
- boolean disjoint;
+ bool disjoint;
};
/**
/* PIPE_QUERY_SO_OVERFLOW_PREDICATE */
/* PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE */
/* PIPE_QUERY_GPU_FINISHED */
- boolean b;
+ bool b;
/* PIPE_QUERY_OCCLUSION_COUNTER */
/* PIPE_QUERY_TIMESTAMP */
PIPE_FD_TYPE_SYNCOBJ,
};
-enum pipe_debug_type
+/**
+ * counter type and counter data type enums used by INTEL_performance_query
+ * APIs in gallium drivers.
+ */
+enum pipe_perf_counter_type
+{
+ PIPE_PERF_COUNTER_TYPE_EVENT,
+ PIPE_PERF_COUNTER_TYPE_DURATION_NORM,
+ PIPE_PERF_COUNTER_TYPE_DURATION_RAW,
+ PIPE_PERF_COUNTER_TYPE_THROUGHPUT,
+ PIPE_PERF_COUNTER_TYPE_RAW,
+ PIPE_PERF_COUNTER_TYPE_TIMESTAMP,
+};
+
+enum pipe_perf_counter_data_type
{
- PIPE_DEBUG_TYPE_OUT_OF_MEMORY = 1,
- PIPE_DEBUG_TYPE_ERROR,
- PIPE_DEBUG_TYPE_SHADER_INFO,
- PIPE_DEBUG_TYPE_PERF_INFO,
- PIPE_DEBUG_TYPE_INFO,
- PIPE_DEBUG_TYPE_FALLBACK,
- PIPE_DEBUG_TYPE_CONFORMANCE,
+ PIPE_PERF_COUNTER_DATA_TYPE_BOOL32,
+ PIPE_PERF_COUNTER_DATA_TYPE_UINT32,
+ PIPE_PERF_COUNTER_DATA_TYPE_UINT64,
+ PIPE_PERF_COUNTER_DATA_TYPE_FLOAT,
+ PIPE_PERF_COUNTER_DATA_TYPE_DOUBLE,
};
#define PIPE_UUID_SIZE 16