vc4: Move program keys to the header file.

I want to be able to inspect them from other files for lowering passes in
NIR.
This commit is contained in:
Eric Anholt 2015-07-29 17:29:39 -07:00
parent 27f728cdc5
commit 13ddd48b97
2 changed files with 49 additions and 47 deletions

View File

@ -23,7 +23,6 @@
*/
#include <inttypes.h>
#include "pipe/p_state.h"
#include "util/u_format.h"
#include "util/u_hash.h"
#include "util/u_math.h"
@ -43,52 +42,6 @@
#include "simpenrose/simpenrose.h"
#endif
struct vc4_key {
struct vc4_uncompiled_shader *shader_state;
struct {
enum pipe_format format;
unsigned compare_mode:1;
unsigned compare_func:3;
unsigned wrap_s:3;
unsigned wrap_t:3;
uint8_t swizzle[4];
} tex[VC4_MAX_TEXTURE_SAMPLERS];
uint8_t ucp_enables;
};
struct vc4_fs_key {
struct vc4_key base;
enum pipe_format color_format;
bool depth_enabled;
bool stencil_enabled;
bool stencil_twoside;
bool stencil_full_writemasks;
bool is_points;
bool is_lines;
bool alpha_test;
bool point_coord_upper_left;
bool light_twoside;
uint8_t alpha_test_func;
uint8_t logicop_func;
uint32_t point_sprite_mask;
struct pipe_rt_blend_state blend;
};
struct vc4_vs_key {
struct vc4_key base;
/**
* This is a proxy for the array of FS input semantics, which is
* larger than we would want to put in the key.
*/
uint64_t compiled_fs_id;
enum pipe_format attr_formats[8];
bool is_coord;
bool per_vertex_point_size;
};
static void
resize_qreg_array(struct vc4_compile *c,
struct qreg **regs,

View File

@ -36,6 +36,9 @@
#include "util/list.h"
#include "util/u_math.h"
#include "vc4_screen.h"
#include "pipe/p_state.h"
enum qfile {
QFILE_NULL,
QFILE_TEMP,
@ -280,6 +283,52 @@ struct vc4_compiler_ubo_range {
bool used;
};
struct vc4_key {
struct vc4_uncompiled_shader *shader_state;
struct {
enum pipe_format format;
unsigned compare_mode:1;
unsigned compare_func:3;
unsigned wrap_s:3;
unsigned wrap_t:3;
uint8_t swizzle[4];
} tex[VC4_MAX_TEXTURE_SAMPLERS];
uint8_t ucp_enables;
};
struct vc4_fs_key {
struct vc4_key base;
enum pipe_format color_format;
bool depth_enabled;
bool stencil_enabled;
bool stencil_twoside;
bool stencil_full_writemasks;
bool is_points;
bool is_lines;
bool alpha_test;
bool point_coord_upper_left;
bool light_twoside;
uint8_t alpha_test_func;
uint8_t logicop_func;
uint32_t point_sprite_mask;
struct pipe_rt_blend_state blend;
};
struct vc4_vs_key {
struct vc4_key base;
/**
* This is a proxy for the array of FS input semantics, which is
* larger than we would want to put in the key.
*/
uint64_t compiled_fs_id;
enum pipe_format attr_formats[8];
bool is_coord;
bool per_vertex_point_size;
};
struct vc4_compile {
struct vc4_context *vc4;
nir_shader *s;