Skip to content

Implement the EvaluateAttributeAtSample HLSL Function #99109

@farzonl

Description

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

DirectX

DXIL Opcode DXIL OpName Shader Model Shader Stages
88 EvalSampleIndex 6.0 ('pixel',)

SPIR-V

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

Test Case(s)

Example 1

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

[numthreads(1, 1, 1)]
[shader("pixel")]
float4 fn(float4 p1 : COLOR ) : SV_Target {
	uint p2;
	return EvaluateAttributeAtSample(p1, p2);
}

HLSL:

Evaluates at the indexed sample location.

Syntax

numeric EvaluateAttributeAtSample(
  in attrib numeric value,
  in uint sampleindex
);

Parameters

value [in]

Type: attrib numeric

The input value.

sampleindex [in]

Type: uint

The sample location.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

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

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions