Skip to content

Implement the EvaluateAttributeCentroid HLSL Function #99110

@farzonl

Description

@farzonl
  • Implement EvaluateAttributeCentroid clang builtin,
    Link EvaluateAttributeCentroid clang builtin with hlsl_intrinsics.h
    Add sema checks for EvaluateAttributeCentroid to CheckHLSLBuiltinFunctionCall in SemaChecking.cpp
    Add codegen for EvaluateAttributeCentroid to EmitHLSLBuiltinExpr in CGBuiltin.cpp
    Add codegen tests to clang/test/CodeGenHLSL/builtins/EvaluateAttributeCentroid.hlsl
    Add sema tests to clang/test/SemaHLSL/BuiltIns/EvaluateAttributeCentroid-errors.hlsl
    Create the int_dx_EvaluateAttributeCentroid intrinsic in IntrinsicsDirectX.td
    Create the DXILOpMapping of int_dx_EvaluateAttributeCentroid to 89 in DXIL.td
    Create the EvaluateAttributeCentroid.ll and EvaluateAttributeCentroid_errors.ll tests in llvm/test/CodeGen/DirectX/

DirectX

DXIL Opcode DXIL OpName Shader Model Shader Stages
89 EvalCentroid 6.0 ('pixel',)

SPIR-V

There is no support for EvaluateAttributeCentroid when targeting SPIR-V.

Test Case(s)

Example 1

//dxc EvaluateAttributeCentroid_test.hlsl -T lib_6_8 -enable-16bit-types -O0

[numthreads(1, 1, 1)]
[shader("pixel")]
float4 fn(float4 p1 : COLOR ) : SV_Target {

	return EvaluateAttributeCentroid(p1);
}

HLSL:

Evaluates at the pixel centroid.

Syntax

numeric EvaluateAttributeCentroid(
  in attrib numeric value
);

Parameters

value [in]

Type: attrib numeric

The input value.

Remarks

Interpolation mode can be linear or linear_no_perspective on the variable. Use of centroid or sample is ignored. Attributes with constant interpolation are also allowed, in which case the sample index is ignored.

Minimum Shader Model

This function is supported in the following shader models.

Shader Model Supported
Shader Model 5 and higher shader models yes

 

This function is supported in the following types of shaders:

Vertex Hull Domain Geometry Pixel Compute
x

 

See also

Intrinsic Functions

Shader Model 5

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    HLSLHLSL Language Supportbackend:DirectXbot:HLSLmetabugIssue to collect references to a group of similar or related issues.

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Development

    No branches or pull requests

      Participants

      @farzonl

      Issue actions

        Implement the `EvaluateAttributeCentroid` HLSL Function · Issue #99110 · llvm/llvm-project