svga: Check rasterization state object before checking poly_stipple_enable
[mesa.git] / src / gallium / drivers / etnaviv / etnaviv_compiler.h
index 2a3b4f4f4ee15f1cc3797d74766a51cefefc4d60..48b1b21875056b6ddd6a5ad64fb74debdfbca542 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "etnaviv_context.h"
 #include "etnaviv_internal.h"
+#include "etnaviv_shader.h"
 #include "pipe/p_compiler.h"
 #include "pipe/p_shader_tokens.h"
 
@@ -92,6 +93,18 @@ struct etna_shader_variant {
 
    /* unknown input property (XX_INPUT_COUNT, field UNK8) */
    uint32_t input_count_unk8;
+
+   /* shader is larger than GPU instruction limit, thus needs icache */
+   bool needs_icache;
+
+   /* shader variants form a linked list */
+   struct etna_shader_variant *next;
+
+   /* replicated here to avoid passing extra ptrs everywhere */
+   struct etna_shader *shader;
+   struct etna_shader_key key;
+
+   struct etna_bo *bo; /* cached code memory bo handle (for icache) */
 };
 
 struct etna_varying {
@@ -105,10 +118,11 @@ struct etna_shader_link_info {
    /* each PS input is annotated with the VS output reg */
    unsigned num_varyings;
    struct etna_varying varyings[ETNA_NUM_INPUTS];
+   int pcoord_varying_comp_ofs;
 };
 
-struct etna_shader_variant *
-etna_compile_shader(const struct etna_specs *specs, const struct tgsi_token *tokens);
+bool
+etna_compile_shader(struct etna_shader_variant *shader);
 
 void
 etna_dump_shader(const struct etna_shader_variant *shader);