nir/vtn: Use return type rather than image type for tex ops
[mesa.git] / src / compiler / glsl / link_varyings.h
index 16bf1668a4c17e80784be846439601e2048745ca..6f4bcdc79c59cee051d73975d168e9c569cdbf75 100644 (file)
@@ -34,7 +34,7 @@
 
 #include "main/glheader.h"
 #include "program/prog_parameter.h"
-
+#include "util/bitset.h"
 
 struct gl_shader_program;
 struct gl_shader;
@@ -99,9 +99,12 @@ public:
    bool store(struct gl_context *ctx, struct gl_shader_program *prog,
               struct gl_transform_feedback_info *info, unsigned buffer,
               unsigned buffer_index, const unsigned max_outputs,
-              bool *explicit_stride, bool has_xfb_qualifiers) const;
+              BITSET_WORD *used_components[MAX_FEEDBACK_BUFFERS],
+              bool *explicit_stride, bool has_xfb_qualifiers,
+              const void *mem_ctx) const;
    const tfeedback_candidate *find_candidate(gl_shader_program *prog,
                                              hash_table *tfeedback_candidates);
+   void set_lowered_candidate(const tfeedback_candidate *candidate);
 
    bool is_next_buffer_separator() const
    {
@@ -121,6 +124,11 @@ public:
       return !this->next_buffer_separator && !this->skip_components;
    }
 
+   bool is_aligned(unsigned dmul, unsigned offset) const
+   {
+      return (dmul * (this->array_subscript + offset)) % 4 == 0;
+   }
+
    const char *name() const
    {
       return this->orig_name;
@@ -276,10 +284,10 @@ link_varyings(struct gl_shader_program *prog, unsigned first, unsigned last,
               struct gl_context *ctx, void *mem_ctx);
 
 void
-validate_sso_explicit_locations(struct gl_context *ctx,
-                                struct gl_shader_program *prog,
-                                gl_shader_stage first,
-                                gl_shader_stage last);
+validate_first_and_last_interface_explicit_locations(struct gl_context *ctx,
+                                                     struct gl_shader_program *prog,
+                                                     gl_shader_stage first,
+                                                     gl_shader_stage last);
 
 void
 cross_validate_outputs_to_inputs(struct gl_context *ctx,