mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 21:10:12 +01:00
zink: implement support for derivative-control
Reviewed-by: Dave Airlie <airlied@redhat.com> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3645> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3645>
This commit is contained in:
parent
f12b844e7c
commit
8405e1bef0
2 changed files with 8 additions and 0 deletions
|
|
@ -911,7 +911,11 @@ emit_alu(struct ntv_context *ctx, nir_alu_instr *alu)
|
|||
UNOP(nir_op_ineg, SpvOpSNegate)
|
||||
UNOP(nir_op_fneg, SpvOpFNegate)
|
||||
UNOP(nir_op_fddx, SpvOpDPdx)
|
||||
UNOP(nir_op_fddx_coarse, SpvOpDPdxCoarse)
|
||||
UNOP(nir_op_fddx_fine, SpvOpDPdxFine)
|
||||
UNOP(nir_op_fddy, SpvOpDPdy)
|
||||
UNOP(nir_op_fddy_coarse, SpvOpDPdyCoarse)
|
||||
UNOP(nir_op_fddy_fine, SpvOpDPdyFine)
|
||||
UNOP(nir_op_f2i32, SpvOpConvertFToS)
|
||||
UNOP(nir_op_f2u32, SpvOpConvertFToU)
|
||||
UNOP(nir_op_i2f32, SpvOpConvertSToF)
|
||||
|
|
@ -1846,6 +1850,7 @@ nir_to_spirv(struct nir_shader *s)
|
|||
if (s->info.stage == MESA_SHADER_FRAGMENT) {
|
||||
spirv_builder_emit_cap(&ctx.builder, SpvCapabilitySampled1D);
|
||||
spirv_builder_emit_cap(&ctx.builder, SpvCapabilityImageQuery);
|
||||
spirv_builder_emit_cap(&ctx.builder, SpvCapabilityDerivativeControl);
|
||||
}
|
||||
|
||||
ctx.stage = s->info.stage;
|
||||
|
|
|
|||
|
|
@ -211,6 +211,9 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
case PIPE_CAP_MAX_TEXTURE_GATHER_OFFSET:
|
||||
return screen->props.limits.maxTexelGatherOffset;
|
||||
|
||||
case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE:
|
||||
return 1;
|
||||
|
||||
case PIPE_CAP_VENDOR_ID:
|
||||
return screen->props.vendorID;
|
||||
case PIPE_CAP_DEVICE_ID:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue