intel/compiler: Add union types for prog_data and prog_key stages
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
@@ -402,6 +402,16 @@ struct brw_cs_prog_key {
|
|||||||
struct brw_sampler_prog_key_data tex;
|
struct brw_sampler_prog_key_data tex;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* brw_any_prog_key is any of the keys that map to an API stage */
|
||||||
|
union brw_any_prog_key {
|
||||||
|
struct brw_vs_prog_key vs;
|
||||||
|
struct brw_tcs_prog_key tcs;
|
||||||
|
struct brw_tes_prog_key tes;
|
||||||
|
struct brw_gs_prog_key gs;
|
||||||
|
struct brw_wm_prog_key wm;
|
||||||
|
struct brw_cs_prog_key cs;
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Image metadata structure as laid out in the shader parameter
|
* Image metadata structure as laid out in the shader parameter
|
||||||
* buffer. Entries have to be 16B-aligned for the vec4 back-end to be
|
* buffer. Entries have to be 16B-aligned for the vec4 back-end to be
|
||||||
@@ -1064,6 +1074,18 @@ struct brw_clip_prog_data {
|
|||||||
uint32_t total_grf;
|
uint32_t total_grf;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* brw_any_prog_data is prog_data for any stage that maps to an API stage */
|
||||||
|
union brw_any_prog_data {
|
||||||
|
struct brw_stage_prog_data base;
|
||||||
|
struct brw_vue_prog_data vue;
|
||||||
|
struct brw_vs_prog_data vs;
|
||||||
|
struct brw_tcs_prog_data tcs;
|
||||||
|
struct brw_tes_prog_data tes;
|
||||||
|
struct brw_gs_prog_data gs;
|
||||||
|
struct brw_wm_prog_data wm;
|
||||||
|
struct brw_cs_prog_data cs;
|
||||||
|
};
|
||||||
|
|
||||||
#define DEFINE_PROG_DATA_DOWNCAST(stage) \
|
#define DEFINE_PROG_DATA_DOWNCAST(stage) \
|
||||||
static inline struct brw_##stage##_prog_data * \
|
static inline struct brw_##stage##_prog_data * \
|
||||||
brw_##stage##_prog_data(struct brw_stage_prog_data *prog_data) \
|
brw_##stage##_prog_data(struct brw_stage_prog_data *prog_data) \
|
||||||
|
Reference in New Issue
Block a user