Skip to content

Commit

Permalink
Relocate cmp values for extended texture compares (#300)
Browse files Browse the repository at this point in the history
The comparison value was placed just after the locations in the
implementation of SampleCmpBias and SampleCmpGrad. This moves the param
in the spec to match.
  • Loading branch information
pow2clk authored Aug 17, 2024
1 parent dd297b6 commit 752bdac
Showing 1 changed file with 14 additions and 14 deletions.
28 changes: 14 additions & 14 deletions proposals/0014-expanded-comparison-sampling.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,10 +86,10 @@ To add full comparison sampling support, HLSL will introduce an optional feature
that adds these new comparison sampling builtin methods to all texture objects
that currently support the non-comparison methods:

* `SampleCmpBias(SamplerComparisonState S, vector<float, CoordsCt> Location, float Bias)`
* `SampleCmpBias(SamplerComparisonState S, vector<float, CoordsCt> Location, float compareValue, float Bias)`
performs a comparison sample using the implicitly-determined LOD with the
explicitly-provided `Bias` value added to that result.
* `SampleCmpGrad(SamplerState S, vector<float, CoordsCt> Location, float DDX, float DDY)`
* `SampleCmpGrad(SamplerState S, vector<float, CoordsCt> Location, float compareValue, float DDX, float DDY)`
samples using the LOD calculated using the explicitly-provided
`DDX` and `DDY` gradients.

Expand All @@ -101,14 +101,14 @@ Though not included above, all relevant overloads of `SampleBias` and
The parameters not explicitly described here will function exactly as they do
when used by the non-comparison builtin methods:

* `SampleCmpBias(SamplerComparisonState S, vector<float, CoordsCt> Location, float Bias)`
* `SampleCmpBias(SamplerComparisonState S, vector<float, CoordsCt> Location, float Bias, int<dims> Offset)`
* `SampleCmpBias(SamplerComparisonState S, vector<float, CoordsCt> Location, float Bias, int<dims> Offset, float Clamp)`
* `SampleCmpBias(SamplerComparisonState S, vector<float, CoordsCt> Location, float Bias, int<dims> Offset, float Clamp, uint Status)`
%* `SampleCmpGrad(SamplerState S, vector<float, CoordsCt> Location, vector<float, DimsCt> DDX, vector<float, DimsCt> DDY)`
* `SampleCmpGrad(SamplerState S, vector<float, CoordsCt> Location, vector<float, DimsCt> DDX, vector<float, DimsCt> DDY, int<dims> Offset)`
* `SampleCmpGrad(SamplerState S, vector<float, CoordsCt> Location, vector<float, DimsCt> DDX, vector<float, DimsCt> DDY, int<dims> Offset, float Clamp)`
* `SampleCmpGrad(SamplerState S, vector<float, CoordsCt> Location, vector<float, DimsCt> DDX, vector<float, DimsCt> DDY, int<dims> Offset, float Clamp, uint Status)`
* `SampleCmpBias(SamplerComparisonState S, vector<float, CoordsCt> Location, float compareValue, float Bias)`
* `SampleCmpBias(SamplerComparisonState S, vector<float, CoordsCt> Location, float compareValue, float Bias, int<dims> Offset)`
* `SampleCmpBias(SamplerComparisonState S, vector<float, CoordsCt> Location, float compareValue, float Bias, int<dims> Offset, float Clamp)`
* `SampleCmpBias(SamplerComparisonState S, vector<float, CoordsCt> Location, float compareValue, float Bias, int<dims> Offset, float Clamp, uint Status)`
%* `SampleCmpGrad(SamplerState S, vector<float, CoordsCt> Location, float compareValue, vector<float, DimsCt> DDX, vector<float, DimsCt> DDY)`
* `SampleCmpGrad(SamplerState S, vector<float, CoordsCt> Location, float compareValue, vector<float, DimsCt> DDX, vector<float, DimsCt> DDY, int<dims> Offset)`
* `SampleCmpGrad(SamplerState S, vector<float, CoordsCt> Location, float compareValue, vector<float, DimsCt> DDX, vector<float, DimsCt> DDY, int<dims> Offset, float Clamp)`
* `SampleCmpGrad(SamplerState S, vector<float, CoordsCt> Location, float compareValue, vector<float, DimsCt> DDX, vector<float, DimsCt> DDY, int<dims> Offset, float Clamp, uint Status)`

To add LOD calculation for comparison samplers, HLSL will introduce and require
these new comparison sampler method overloads to all texture objects that
Expand All @@ -132,19 +132,19 @@ template<typename ElementType, int CoordsCt, int DimsCt>
vector<ElementType, DimsCt> TextureBase::SampleCmpGrad(
SamplerComparisonState S,
vector<float, CoordsCt> Location,
float CompareValue,
vector<float, DimsCt> DDX,
vector<float, DimsCt> DDY,
float CompareValue,
vector<int, DimsCt> Offset = 0,
float Clamp = 0.0f);

template<typename ElementType, int CoordsCt, int DimsCt>
vector<ElementType, DimsCt> TextureCube::SampleCmpGrad(
SamplerComparisonState S,
vector<float, CoordsCt> Location,
float CompareValue,
vector<float, DimsCt> DDX,
vector<float, DimsCt> DDY,
float CompareValue,
float Clamp = 0.0f);
```
Expand All @@ -162,17 +162,17 @@ template<typename ElementType, int CoordsCt, int DimsCt>
vector<ElementType, DimsCt> TextureBase::SampleCmpBias(
SamplerComparisonState S,
vector<float, CoordsCt> Location,
float Bias,
float CompareValue,
float Bias,
vector<int, DimsCt> Offset = 0,
float Clamp = 0.0f,
);
template<typename ElementType, int CoordsCt, int DimsCt>
vector<ElementType, DimsCt> TextureCube[Array]::SampleCmpBias(
SamplerComparisonState S,
vector<float, CoordsCt> Location,
float Bias,
float CompareValue,
float Bias,
float Clamp = 0.0f
);
```
Expand Down

0 comments on commit 752bdac

Please sign in to comment.