X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fcompiler%2Fglsl%2Flink_varyings.h;h=b802250819e718bbd2a4da6dcf9e72b68b7406dc;hb=9950523368026f900fe901eb5921fd2283e5280c;hp=177efe525cc8d8ccba25b717596ef684a1d705fb;hpb=ce4fb3c8a136d129d7afad5a919c1403e38d8c02;p=mesa.git diff --git a/src/compiler/glsl/link_varyings.h b/src/compiler/glsl/link_varyings.h index 177efe525cc..b802250819e 100644 --- a/src/compiler/glsl/link_varyings.h +++ b/src/compiler/glsl/link_varyings.h @@ -21,7 +21,6 @@ * DEALINGS IN THE SOFTWARE. */ -#pragma once #ifndef GLSL_LINK_VARYINGS_H #define GLSL_LINK_VARYINGS_H @@ -34,7 +33,8 @@ #include "main/glheader.h" - +#include "program/prog_parameter.h" +#include "util/bitset.h" struct gl_shader_program; struct gl_shader; @@ -99,7 +99,9 @@ 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); @@ -162,24 +164,7 @@ private: bool is_64bit() const { - switch (this->type) { - case GL_DOUBLE: - case GL_DOUBLE_VEC2: - case GL_DOUBLE_VEC3: - case GL_DOUBLE_VEC4: - case GL_DOUBLE_MAT2: - case GL_DOUBLE_MAT2x3: - case GL_DOUBLE_MAT2x4: - case GL_DOUBLE_MAT3: - case GL_DOUBLE_MAT3x2: - case GL_DOUBLE_MAT3x4: - case GL_DOUBLE_MAT4: - case GL_DOUBLE_MAT4x2: - case GL_DOUBLE_MAT4x3: - return true; - default: - return false; - } + return _mesa_gl_datatype_is_64bit(this->type); } /** @@ -293,7 +278,14 @@ link_varyings(struct gl_shader_program *prog, unsigned first, unsigned last, struct gl_context *ctx, void *mem_ctx); void -cross_validate_outputs_to_inputs(struct gl_shader_program *prog, +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, + struct gl_shader_program *prog, gl_linked_shader *producer, gl_linked_shader *consumer);