zink: emit blend-target index

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3689>
This commit is contained in:
Erik Faye-Lund
2020-02-04 11:12:25 +01:00
committed by Marge Bot
parent 8736ffae2e
commit e365f83740
3 changed files with 11 additions and 0 deletions

View File

@@ -331,6 +331,7 @@ emit_output(struct ntv_context *ctx, struct nir_variable *var)
switch (var->data.location) {
case FRAG_RESULT_COLOR:
spirv_builder_emit_location(&ctx->builder, var_id, 0);
spirv_builder_emit_index(&ctx->builder, var_id, var->data.index);
break;
case FRAG_RESULT_DEPTH:

View File

@@ -222,6 +222,13 @@ spirv_builder_emit_array_stride(struct spirv_builder *b, SpvId target,
emit_decoration(b, target, SpvDecorationArrayStride, args, ARRAY_SIZE(args));
}
void
spirv_builder_emit_index(struct spirv_builder *b, SpvId target, int index)
{
uint32_t args[] = { index };
emit_decoration(b, target, SpvDecorationIndex, args, ARRAY_SIZE(args));
}
static void
emit_member_decoration(struct spirv_builder *b, SpvId target, uint32_t member,
SpvDecoration decoration, const uint32_t extra_operands[],

View File

@@ -93,6 +93,9 @@ void
spirv_builder_emit_builtin(struct spirv_builder *b, SpvId target,
SpvBuiltIn builtin);
void
spirv_builder_emit_index(struct spirv_builder *b, SpvId target, int index);
void
spirv_builder_emit_descriptor_set(struct spirv_builder *b, SpvId target,
uint32_t descriptor_set);