Update attribute for intrinsic. (#8)
This commit is contained in:
Родитель
edfe849282
Коммит
2032a2c9a5
|
@ -1246,8 +1246,8 @@ static const HLSL_INTRINSIC g_Intrinsics[] =
|
|||
(UINT)hlsl::IntrinsicOp::IOP_EvaluateAttributeAtSample, false, true, -1, 3, g_Intrinsics_Args7,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_EvaluateAttributeCentroid, false, true, -1, 2, g_Intrinsics_Args8,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_EvaluateAttributeSnapped, false, true, -1, 3, g_Intrinsics_Args9,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_GetRenderTargetSampleCount, false, false, -1, 1, g_Intrinsics_Args10,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_GetRenderTargetSamplePosition, false, false, -1, 2, g_Intrinsics_Args11,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_GetRenderTargetSampleCount, false, true, -1, 1, g_Intrinsics_Args10,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_GetRenderTargetSamplePosition, false, true, -1, 2, g_Intrinsics_Args11,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_GroupMemoryBarrier, false, false, -1, 1, g_Intrinsics_Args12,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_GroupMemoryBarrierWithGroupSync, false, false, -1, 1, g_Intrinsics_Args13,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_InterlockedAdd, false, false, -1, 3, g_Intrinsics_Args14,
|
||||
|
@ -1266,40 +1266,40 @@ static const HLSL_INTRINSIC g_Intrinsics[] =
|
|||
(UINT)hlsl::IntrinsicOp::IOP_InterlockedXor, false, false, -1, 3, g_Intrinsics_Args27,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_InterlockedXor, false, false, -1, 4, g_Intrinsics_Args28,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_NonUniformResourceIndex, false, true, -1, 2, g_Intrinsics_Args29,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_Process2DQuadTessFactorsAvg, false, false, -1, 6, g_Intrinsics_Args30,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_Process2DQuadTessFactorsMax, false, false, -1, 6, g_Intrinsics_Args31,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_Process2DQuadTessFactorsMin, false, false, -1, 6, g_Intrinsics_Args32,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessIsolineTessFactors, false, false, -1, 5, g_Intrinsics_Args33,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessQuadTessFactorsAvg, false, false, -1, 6, g_Intrinsics_Args34,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessQuadTessFactorsMax, false, false, -1, 6, g_Intrinsics_Args35,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessQuadTessFactorsMin, false, false, -1, 6, g_Intrinsics_Args36,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessTriTessFactorsAvg, false, false, -1, 6, g_Intrinsics_Args37,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessTriTessFactorsMax, false, false, -1, 6, g_Intrinsics_Args38,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessTriTessFactorsMin, false, false, -1, 6, g_Intrinsics_Args39,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_QuadReadAcrossDiagonal, false, true, -1, 2, g_Intrinsics_Args40,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_QuadReadAcrossX, false, true, -1, 2, g_Intrinsics_Args41,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_QuadReadAcrossY, false, true, -1, 2, g_Intrinsics_Args42,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_QuadReadLaneAt, false, true, -1, 3, g_Intrinsics_Args43,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveAllEqual, false, true, -1, 2, g_Intrinsics_Args44,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveAllTrue, false, true, -1, 2, g_Intrinsics_Args45,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveAnyTrue, false, true, -1, 2, g_Intrinsics_Args46,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveBallot, false, true, -1, 2, g_Intrinsics_Args47,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveBitAnd, false, true, -1, 2, g_Intrinsics_Args48,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveBitOr, false, true, -1, 2, g_Intrinsics_Args49,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveBitXor, false, true, -1, 2, g_Intrinsics_Args50,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveCountBits, false, true, -1, 2, g_Intrinsics_Args51,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveMax, false, true, -1, 2, g_Intrinsics_Args52,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveMin, false, true, -1, 2, g_Intrinsics_Args53,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveProduct, false, true, -1, 2, g_Intrinsics_Args54,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveSum, false, true, -1, 2, g_Intrinsics_Args55,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_Process2DQuadTessFactorsAvg, false, true, -1, 6, g_Intrinsics_Args30,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_Process2DQuadTessFactorsMax, false, true, -1, 6, g_Intrinsics_Args31,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_Process2DQuadTessFactorsMin, false, true, -1, 6, g_Intrinsics_Args32,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessIsolineTessFactors, false, true, -1, 5, g_Intrinsics_Args33,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessQuadTessFactorsAvg, false, true, -1, 6, g_Intrinsics_Args34,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessQuadTessFactorsMax, false, true, -1, 6, g_Intrinsics_Args35,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessQuadTessFactorsMin, false, true, -1, 6, g_Intrinsics_Args36,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessTriTessFactorsAvg, false, true, -1, 6, g_Intrinsics_Args37,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessTriTessFactorsMax, false, true, -1, 6, g_Intrinsics_Args38,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_ProcessTriTessFactorsMin, false, true, -1, 6, g_Intrinsics_Args39,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_QuadReadAcrossDiagonal, false, false, -1, 2, g_Intrinsics_Args40,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_QuadReadAcrossX, false, false, -1, 2, g_Intrinsics_Args41,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_QuadReadAcrossY, false, false, -1, 2, g_Intrinsics_Args42,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_QuadReadLaneAt, false, false, -1, 3, g_Intrinsics_Args43,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveAllEqual, false, false, -1, 2, g_Intrinsics_Args44,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveAllTrue, false, false, -1, 2, g_Intrinsics_Args45,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveAnyTrue, false, false, -1, 2, g_Intrinsics_Args46,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveBallot, false, false, -1, 2, g_Intrinsics_Args47,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveBitAnd, false, false, -1, 2, g_Intrinsics_Args48,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveBitOr, false, false, -1, 2, g_Intrinsics_Args49,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveBitXor, false, false, -1, 2, g_Intrinsics_Args50,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveCountBits, false, false, -1, 2, g_Intrinsics_Args51,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveMax, false, false, -1, 2, g_Intrinsics_Args52,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveMin, false, false, -1, 2, g_Intrinsics_Args53,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveProduct, false, false, -1, 2, g_Intrinsics_Args54,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveActiveSum, false, false, -1, 2, g_Intrinsics_Args55,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveGetLaneCount, false, true, -1, 1, g_Intrinsics_Args56,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveGetLaneIndex, false, true, -1, 1, g_Intrinsics_Args57,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveIsFirstLane, false, true, -1, 1, g_Intrinsics_Args58,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WavePrefixCountBits, false, true, -1, 2, g_Intrinsics_Args59,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WavePrefixProduct, false, true, -1, 2, g_Intrinsics_Args60,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WavePrefixSum, false, true, -1, 2, g_Intrinsics_Args61,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveReadLaneAt, false, true, -1, 3, g_Intrinsics_Args62,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveReadLaneFirst, false, true, -1, 2, g_Intrinsics_Args63,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveIsFirstLane, false, false, -1, 1, g_Intrinsics_Args58,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WavePrefixCountBits, false, false, -1, 2, g_Intrinsics_Args59,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WavePrefixProduct, false, false, -1, 2, g_Intrinsics_Args60,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WavePrefixSum, false, false, -1, 2, g_Intrinsics_Args61,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveReadLaneAt, false, false, -1, 3, g_Intrinsics_Args62,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_WaveReadLaneFirst, false, false, -1, 2, g_Intrinsics_Args63,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_abort, false, false, -1, 1, g_Intrinsics_Args64,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_abs, false, true, -1, 2, g_Intrinsics_Args65,
|
||||
(UINT)hlsl::IntrinsicOp::IOP_acos, false, true, -1, 2, g_Intrinsics_Args66,
|
||||
|
|
|
@ -80,8 +80,8 @@
|
|||
namespace Intrinsics {
|
||||
|
||||
int<4> [[rn]] D3DCOLORtoUBYTE4(in $match<0, 1> float<4> x) : d3dcolortoubyte4;
|
||||
uint [[]] GetRenderTargetSampleCount() : rtsampleinfo;
|
||||
float<2> [[]] GetRenderTargetSamplePosition(in int s) : rtsamplepos;
|
||||
uint [[rn]] GetRenderTargetSampleCount() : rtsampleinfo;
|
||||
float<2> [[rn]] GetRenderTargetSamplePosition(in int s) : rtsamplepos;
|
||||
void [[]] abort();
|
||||
$type1 [[rn]] abs(in numeric<> x);
|
||||
$type1 [[rn]] acos(in float_like<> x);
|
||||
|
@ -179,16 +179,16 @@ $match<0, 1> float_like [[rn]] noise(in float_like<c> x);
|
|||
$type1 [[rn]] normalize(in float_like<c> x);
|
||||
$type1 [[rn]] pow(in float_like<> x, in $type1 y);
|
||||
// void printf(in string Format, ...);
|
||||
void [[]] Process2DQuadTessFactorsAvg(in float<4> RawEdgeFactors, in float<2> InsideScale, out float<4> RoundedEdgeFactors, out float<2> RoundedInsideFactors, out float<2> UnroundedInsideFactors) : ptf_2dqavg;
|
||||
void [[]] Process2DQuadTessFactorsMax(in float<4> RawEdgeFactors, in float<2> InsideScale, out float<4> RoundedEdgeFactors, out float<2> RoundedInsideFactors, out float<2> UnroundedInsideFactors) : ptf_2dqmax;
|
||||
void [[]] Process2DQuadTessFactorsMin(in float<4> RawEdgeFactors, in float<2> InsideScale, out float<4> RoundedEdgeFactors, out float<2> RoundedInsideFactors, out float<2> UnroundedInsideFactors) : ptf_2dqmin;
|
||||
void [[]] ProcessIsolineTessFactors(in float<1> RawDetailFactor, in float<1> RawDensityFactor, out float<1> RoundedDetailFactorr, out float<1> RoundedDensityFactor) : ptf_i;
|
||||
void [[]] ProcessQuadTessFactorsAvg(in float<4> RawEdgeFactors, in float<1> InsideScale, out float<4> RoundedEdgeFactors, out float<2> RoundedInsideFactors, out float<2> UnroundedInsideFactors) : ptf_qavg;
|
||||
void [[]] ProcessQuadTessFactorsMax(in float<4> RawEdgeFactors, in float<1> InsideScale, out float<4> RoundedEdgeFactors, out float<2> RoundedInsideFactors, out float<2> UnroundedInsideFactors) : ptf_qmax;
|
||||
void [[]] ProcessQuadTessFactorsMin(in float<4> RawEdgeFactors, in float<1> InsideScale, out float<4> RoundedEdgeFactors, out float<2> RoundedInsideFactors, out float<2> UnroundedInsideFactors) : ptf_qmin;
|
||||
void [[]] ProcessTriTessFactorsAvg(in float<3> RawEdgeFactors, in float<1> InsideScale, out float<3> RoundedEdgeFactors, out float<1> RoundedInsideFactor, out float<1> UnroundedInsideFactor) : ptf_tmin;
|
||||
void [[]] ProcessTriTessFactorsMax(in float<3> RawEdgeFactors, in float<1> InsideScale, out float<3> RoundedEdgeFactors, out float<1> RoundedInsideFactor, out float<1> UnroundedInsideFactor) : ptf_tmax;
|
||||
void [[]] ProcessTriTessFactorsMin(in float<3> RawEdgeFactors, in float<1> InsideScale, out float<3> RoundedEdgeFactors, out float<1> RoundedInsideFactor, out float<1> UnroundedInsideFactor) : ptf_tavg;
|
||||
void [[rn]] Process2DQuadTessFactorsAvg(in float<4> RawEdgeFactors, in float<2> InsideScale, out float<4> RoundedEdgeFactors, out float<2> RoundedInsideFactors, out float<2> UnroundedInsideFactors) : ptf_2dqavg;
|
||||
void [[rn]] Process2DQuadTessFactorsMax(in float<4> RawEdgeFactors, in float<2> InsideScale, out float<4> RoundedEdgeFactors, out float<2> RoundedInsideFactors, out float<2> UnroundedInsideFactors) : ptf_2dqmax;
|
||||
void [[rn]] Process2DQuadTessFactorsMin(in float<4> RawEdgeFactors, in float<2> InsideScale, out float<4> RoundedEdgeFactors, out float<2> RoundedInsideFactors, out float<2> UnroundedInsideFactors) : ptf_2dqmin;
|
||||
void [[rn]] ProcessIsolineTessFactors(in float<1> RawDetailFactor, in float<1> RawDensityFactor, out float<1> RoundedDetailFactorr, out float<1> RoundedDensityFactor) : ptf_i;
|
||||
void [[rn]] ProcessQuadTessFactorsAvg(in float<4> RawEdgeFactors, in float<1> InsideScale, out float<4> RoundedEdgeFactors, out float<2> RoundedInsideFactors, out float<2> UnroundedInsideFactors) : ptf_qavg;
|
||||
void [[rn]] ProcessQuadTessFactorsMax(in float<4> RawEdgeFactors, in float<1> InsideScale, out float<4> RoundedEdgeFactors, out float<2> RoundedInsideFactors, out float<2> UnroundedInsideFactors) : ptf_qmax;
|
||||
void [[rn]] ProcessQuadTessFactorsMin(in float<4> RawEdgeFactors, in float<1> InsideScale, out float<4> RoundedEdgeFactors, out float<2> RoundedInsideFactors, out float<2> UnroundedInsideFactors) : ptf_qmin;
|
||||
void [[rn]] ProcessTriTessFactorsAvg(in float<3> RawEdgeFactors, in float<1> InsideScale, out float<3> RoundedEdgeFactors, out float<1> RoundedInsideFactor, out float<1> UnroundedInsideFactor) : ptf_tmin;
|
||||
void [[rn]] ProcessTriTessFactorsMax(in float<3> RawEdgeFactors, in float<1> InsideScale, out float<3> RoundedEdgeFactors, out float<1> RoundedInsideFactor, out float<1> UnroundedInsideFactor) : ptf_tmax;
|
||||
void [[rn]] ProcessTriTessFactorsMin(in float<3> RawEdgeFactors, in float<1> InsideScale, out float<3> RoundedEdgeFactors, out float<1> RoundedInsideFactor, out float<1> UnroundedInsideFactor) : ptf_tavg;
|
||||
$type1 [[rn]] radians(in float_like<> x);
|
||||
$type1 [[rn]] rcp(in any_float<> x) : rcp_approx;
|
||||
$type1 [[rn]] reflect(in float_like<c> i, in $type1 n);
|
||||
|
@ -238,30 +238,30 @@ uint<c> [[rn]] AddUint64(in $match<1, 0> uint<c> a, in $match<2, 0> uint<c> b) :
|
|||
$type1 [[rn]] NonUniformResourceIndex(in any<> index) : nonuniform_resource_index;
|
||||
|
||||
// Wave intrinsics.
|
||||
bool [[rn]] WaveIsFirstLane();
|
||||
bool [[]] WaveIsFirstLane();
|
||||
uint [[rn]] WaveGetLaneIndex();
|
||||
uint [[rn]] WaveGetLaneCount();
|
||||
bool [[rn]] WaveActiveAnyTrue(in bool cond);
|
||||
bool [[rn]] WaveActiveAllTrue(in bool cond);
|
||||
$match<1, 0> bool<> [[rn]] WaveActiveAllEqual(in numeric<> value);
|
||||
uint<4> [[rn]] WaveActiveBallot(in bool cond);
|
||||
$type1 [[rn]] WaveReadLaneAt(in numeric<> value, in uint lane);
|
||||
$type1 [[rn]] WaveReadLaneFirst(in numeric<> value);
|
||||
uint [[rn]] WaveActiveCountBits(in bool value);
|
||||
$type1 [[rn,unsigned_op=WaveActiveUSum]] WaveActiveSum(in numeric<> value);
|
||||
$type1 [[rn,unsigned_op=WaveActiveUProduct]] WaveActiveProduct(in numeric<> value);
|
||||
$type1 [[rn]] WaveActiveBitAnd(in uint_only<> value);
|
||||
$type1 [[rn]] WaveActiveBitOr(in uint_only<> value);
|
||||
$type1 [[rn]] WaveActiveBitXor(in uint_only<> value);
|
||||
$type1 [[rn,unsigned_op=WaveActiveUMin]] WaveActiveMin(in numeric<> value);
|
||||
$type1 [[rn,unsigned_op=WaveActiveUMax]] WaveActiveMax(in numeric<> value);
|
||||
uint [[rn]] WavePrefixCountBits(in bool value);
|
||||
$type1 [[rn,unsigned_op=WavePrefixUSum]] WavePrefixSum(in numeric<> value);
|
||||
$type1 [[rn,unsigned_op=WavePrefixUProduct]] WavePrefixProduct(in numeric<> value);
|
||||
$type1 [[rn]] QuadReadLaneAt(in numeric<> value, in uint quadLane);
|
||||
$type1 [[rn]] QuadReadAcrossX(in numeric<> value);
|
||||
$type1 [[rn]] QuadReadAcrossY(in numeric<> value);
|
||||
$type1 [[rn]] QuadReadAcrossDiagonal(in numeric<> value);
|
||||
bool [[]] WaveActiveAnyTrue(in bool cond);
|
||||
bool [[]] WaveActiveAllTrue(in bool cond);
|
||||
$match<1, 0> bool<> [[]] WaveActiveAllEqual(in numeric<> value);
|
||||
uint<4> [[]] WaveActiveBallot(in bool cond);
|
||||
$type1 [[]] WaveReadLaneAt(in numeric<> value, in uint lane);
|
||||
$type1 [[]] WaveReadLaneFirst(in numeric<> value);
|
||||
uint [[]] WaveActiveCountBits(in bool value);
|
||||
$type1 [[unsigned_op=WaveActiveUSum]] WaveActiveSum(in numeric<> value);
|
||||
$type1 [[unsigned_op=WaveActiveUProduct]] WaveActiveProduct(in numeric<> value);
|
||||
$type1 [[]] WaveActiveBitAnd(in uint_only<> value);
|
||||
$type1 [[]] WaveActiveBitOr(in uint_only<> value);
|
||||
$type1 [[]] WaveActiveBitXor(in uint_only<> value);
|
||||
$type1 [[unsigned_op=WaveActiveUMin]] WaveActiveMin(in numeric<> value);
|
||||
$type1 [[unsigned_op=WaveActiveUMax]] WaveActiveMax(in numeric<> value);
|
||||
uint [[]] WavePrefixCountBits(in bool value);
|
||||
$type1 [[unsigned_op=WavePrefixUSum]] WavePrefixSum(in numeric<> value);
|
||||
$type1 [[unsigned_op=WavePrefixUProduct]] WavePrefixProduct(in numeric<> value);
|
||||
$type1 [[]] QuadReadLaneAt(in numeric<> value, in uint quadLane);
|
||||
$type1 [[]] QuadReadAcrossX(in numeric<> value);
|
||||
$type1 [[]] QuadReadAcrossY(in numeric<> value);
|
||||
$type1 [[]] QuadReadAcrossDiagonal(in numeric<> value);
|
||||
|
||||
} namespace
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче