Lines Matching refs:qual

2949                        const ast_type_qualifier *qual)
2951 if (!qual->flags.q.uniform && !qual->flags.q.buffer) {
2959 if (!process_qualifier_constant(state, loc, "binding", qual->binding,
2980 if (qual->flags.q.uniform &&
2998 if (qual->flags.q.buffer &&
3153 const struct ast_type_qualifier *qual,
3222 && qual->flags.q.varying) {
3226 if (qual->flags.q.centroid)
3241 interpret_interpolation_qualifier(const struct ast_type_qualifier *qual,
3248 if (qual->flags.q.flat)
3250 else if (qual->flags.q.noperspective)
3252 else if (qual->flags.q.smooth)
3259 qual, var_type, mode);
3266 apply_explicit_location(const struct ast_type_qualifier *qual,
3274 if (!process_qualifier_constant(state, loc, "location", qual->location,
3280 if (qual->flags.q.uniform) {
3407 if (qual->flags.q.explicit_index && qual->is_subroutine_decl()) {
3414 if (qual->flags.q.explicit_index &&
3415 process_qualifier_constant(state, loc, "index", qual->index,
3486 const struct ast_type_qualifier *qual,
3495 if (!type->is_image() && !qual->flags.q.buffer) {
3496 if (qual->flags.q.read_only ||
3497 qual->flags.q.write_only ||
3498 qual->flags.q.coherent ||
3499 qual->flags.q._volatile ||
3500 qual->flags.q.restrict_flag) {
3513 const struct ast_type_qualifier *qual,
3521 if (!type->is_image() && qual->flags.q.explicit_image_format) {
3530 apply_image_qualifier_to_variable(const struct ast_type_qualifier *qual,
3537 if (!validate_image_format_qualifier_for_type(state, loc, qual, base_type) ||
3538 !validate_memory_qualifier_for_type(state, loc, qual, base_type))
3547 var->data.memory_read_only |= qual->flags.q.read_only;
3548 var->data.memory_write_only |= qual->flags.q.write_only;
3549 var->data.memory_coherent |= qual->flags.q.coherent;
3550 var->data.memory_volatile |= qual->flags.q._volatile;
3551 var->data.memory_restrict |= qual->flags.q.restrict_flag;
3553 if (qual->flags.q.explicit_image_format) {
3559 if (qual->image_base_type != base_type->sampled_type) {
3564 var->data.image_format = qual->image_format;
3576 } else if (!qual->flags.q.write_only) {
3617 const struct ast_type_qualifier *qual)
3623 return (state->fs_pixel_center_integer != qual->flags.q.pixel_center_integer
3624 || state->fs_origin_upper_left != qual->flags.q.origin_upper_left);
3632 const struct ast_type_qualifier *qual)
3635 return state->layer_viewport_relative != qual->flags.q.viewport_relative;
3660 apply_bindless_qualifier_to_variable(const struct ast_type_qualifier *qual,
3665 bool has_local_qualifiers = qual->flags.q.bindless_sampler ||
3666 qual->flags.q.bindless_image ||
3667 qual->flags.q.bound_sampler ||
3668 qual->flags.q.bound_image;
3679 if (has_local_qualifiers && !qual->flags.q.uniform) {
3691 if ((qual->flags.q.bindless_sampler || qual->flags.q.bound_sampler) &&
3698 if ((qual->flags.q.bindless_image || qual->flags.q.bound_image) &&
3710 var->data.bindless = qual->flags.q.bindless_sampler ||
3711 qual->flags.q.bindless_image ||
3715 var->data.bound = qual->flags.q.bound_sampler ||
3716 qual->flags.q.bound_image ||
3723 apply_layout_qualifier_to_variable(const struct ast_type_qualifier *qual,
3750 if (is_conflicting_fragcoord_redeclaration(state, qual)) {
3752 get_layout_qualifier_string(qual->flags.q.origin_upper_left,
3753 qual->flags.q.pixel_center_integer);
3765 state->fs_origin_upper_left = qual->flags.q.origin_upper_left;
3766 state->fs_pixel_center_integer = qual->flags.q.pixel_center_integer;
3768 !qual->flags.q.origin_upper_left && !qual->flags.q.pixel_center_integer;
3775 if ((qual->flags.q.origin_upper_left || qual->flags.q.pixel_center_integer)
3777 const char *const qual_string = (qual->flags.q.origin_upper_left)
3786 if (qual->flags.q.explicit_location) {
3787 apply_explicit_location(qual, var, state, loc);
3789 if (qual->flags.q.explicit_component) {
3792 qual->component, &qual_component)) {
3799 } else if (qual->flags.q.explicit_index) {
3800 if (!qual->subroutine_list)
3803 } else if (qual->flags.q.explicit_component) {
3808 if (qual->flags.q.explicit_binding) {
3809 apply_explicit_binding(state, loc, var, var->type, qual);
3813 qual->flags.q.out && qual->flags.q.stream) {
3815 if (process_qualifier_constant(state, loc, "stream", qual->stream,
3822 if (qual->flags.q.out && qual->flags.q.xfb_buffer) {
3825 qual->xfb_buffer, &qual_xfb_buffer) &&
3828 if (qual->flags.q.explicit_xfb_buffer)
3833 if (qual->flags.q.explicit_xfb_offset) {
3838 qual->offset, &qual_xfb_offset) &&
3846 if (qual->flags.q.explicit_xfb_stride) {
3849 qual->xfb_stride, &qual_xfb_stride)) {
3906 const bool uses_deprecated_qualifier = qual->flags.q.attribute
3907 || qual->flags.q.varying;
3908 if (qual->has_layout() && uses_deprecated_qualifier) {
3923 if (qual->flags.q.depth_type
3931 } else if (qual->flags.q.depth_type
3938 switch (qual->depth_type) {
3956 if (qual->flags.q.std140 ||
3957 qual->flags.q.std430 ||
3958 qual->flags.q.packed ||
3959 qual->flags.q.shared) {
3967 if (qual->flags.q.row_major || qual->flags.q.column_major) {
3980 if (qual->flags.q.early_fragment_tests) {
3985 if (qual->flags.q.inner_coverage) {
3990 if (qual->flags.q.post_depth_coverage) {
3996 apply_bindless_qualifier_to_variable(qual, var, state, loc);
3998 if (qual->flags.q.pixel_interlock_ordered ||
3999 qual->flags.q.pixel_interlock_unordered ||
4000 qual->flags.q.sample_interlock_ordered ||
4001 qual->flags.q.sample_interlock_unordered) {
4009 if (is_conflicting_layer_redeclaration(state, qual)) {
4014 if (qual->flags.q.viewport_relative) {
4017 } else if (qual->flags.q.viewport_relative) {
4025 apply_type_qualifier_to_variable(const struct ast_type_qualifier *qual,
4031 STATIC_ASSERT(sizeof(qual->flags.q) <= sizeof(qual->flags.i));
4033 if (qual->flags.q.invariant) {
4045 if (qual->flags.q.precise) {
4056 if (qual->is_subroutine_decl() && !qual->flags.q.uniform) {
4062 if (qual->flags.q.constant || qual->flags.q.attribute
4063 || qual->flags.q.uniform
4064 || (qual->flags.q.varying && (state->stage == MESA_SHADER_FRAGMENT)))
4067 if (qual->flags.q.centroid)
4070 if (qual->flags.q.sample)
4076 select_gles_precision(qual->precision, var->type, state, loc);
4079 if (qual->flags.q.patch)
4082 if (qual->flags.q.attribute && state->stage != MESA_SHADER_VERTEX) {
4091 if (qual->flags.q.prim_type) {
4106 if (is_parameter && qual->flags.q.constant && qual->flags.q.out) {
4116 if (qual->flags.q.in && qual->flags.q.out)
4118 else if (qual->flags.q.in)
4120 else if (qual->flags.q.attribute
4121 || (qual->flags.q.varying && (state->stage == MESA_SHADER_FRAGMENT)))
4123 else if (qual->flags.q.out)
4125 else if (qual->flags.q.varying && (state->stage == MESA_SHADER_VERTEX))
4127 else if (qual->flags.q.uniform)
4129 else if (qual->flags.q.buffer)
4131 else if (qual->flags.q.shared_storage)
4137 var->data.fb_fetch_output = qual->flags.q.in && qual->flags.q.out;
4153 var->data.memory_coherent = !qual->flags.q.non_coherent;
4173 if (qual->flags.q.non_coherent)
4265 interpret_interpolation_qualifier(qual, var->type,
4272 const bool uses_deprecated_qualifier = qual->flags.q.attribute
4273 || qual->flags.q.varying;
4293 if (qual->flags.q.sample && (!is_varying_var(var, state->stage) || uses_deprecated_qualifier)) {
4298 if (qual->flags.q.centroid && !is_varying_var(var, state->stage)) {
4304 if (qual->flags.q.shared_storage && state->stage != MESA_SHADER_COMPUTE) {
4310 apply_image_qualifier_to_variable(qual, var, state, loc);
7444 const struct ast_type_qualifier *const qual =
7492 if (qual->flags.q.explicit_binding) {
7502 !qual->flags.q.explicit_location) ||
7504 qual->flags.q.explicit_location))) {
7515 qual->flags.q.explicit_location;
7519 if (qual->flags.q.std140 ||
7520 qual->flags.q.std430 ||
7521 qual->flags.q.packed ||
7522 qual->flags.q.shared) {
7530 if (qual->flags.q.constant) {
7536 validate_memory_qualifier_for_type(state, &loc, qual, decl_type);
7537 validate_image_format_qualifier_for_type(state, &loc, qual, decl_type);
7545 if (qual->flags.q.explicit_stream) {
7548 qual->stream, &qual_stream) &&
7559 if (qual->flags.q.explicit_xfb_buffer) {
7562 qual->xfb_buffer, &qual_xfb_buffer)) {
7578 if (qual->flags.q.explicit_xfb_stride) {
7581 qual->xfb_stride, &qual_xfb_stride)) {
7586 if (qual->flags.q.uniform && qual->has_interpolation()) {
7592 if ((qual->flags.q.uniform || !is_interface) &&
7593 qual->has_auxiliary_storage()) {
7599 if (qual->flags.q.row_major || qual->flags.q.column_major) {
7600 if (!qual->flags.q.uniform && !qual->flags.q.buffer) {
7621 interpret_interpolation_qualifier(qual, field_type,
7623 fields[i].centroid = qual->flags.q.centroid ? 1 : 0;
7624 fields[i].sample = qual->flags.q.sample ? 1 : 0;
7625 fields[i].patch = qual->flags.q.patch ? 1 : 0;
7631 if (qual->flags.q.explicit_location) {
7634 qual->location, &qual_location)) {
7649 if (qual->flags.q.explicit_component) {
7652 qual->component, &qual_component)) {
7668 if (qual->flags.q.row_major ||
7684 if (qual->flags.q.explicit_offset) {
7687 qual->offset, &qual_offset)) {
7707 if (qual->flags.q.explicit_align || expl_align != 0) {
7713 } else if (qual->flags.q.explicit_align) {
7716 qual->align, &member_align)) {
7730 } else if (!qual->flags.q.explicit_offset) {
7744 if (qual->flags.q.explicit_xfb_offset) {
7747 qual->offset, &xfb_offset)) {
7774 if (qual->flags.q.row_major)
7776 else if (qual->flags.q.column_major)
7794 if (qual->flags.q.read_only || qual->flags.q.write_only) {
7795 fields[i].memory_read_only = qual->flags.q.read_only;
7796 fields[i].memory_write_only = qual->flags.q.write_only;
7807 fields[i].memory_coherent = qual->flags.q.coherent ||
7809 fields[i].memory_volatile = qual->flags.q._volatile ||
7811 fields[i].memory_restrict = qual->flags.q.restrict_flag ||
7815 if (qual->flags.q.explicit_image_format) {
7816 if (qual->image_base_type !=
7822 fields[i].image_format = qual->image_format;
7824 if (!qual->flags.q.write_only) {
7837 fields[i].precision = select_gles_precision(qual->precision,
7842 fields[i].precision = qual->precision;