From 5bcb342962634e9c36fe399a822e685bb2eb8d76 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Thu, 11 Mar 2021 17:08:08 -0500 Subject: stdlib documentation (#1745) * #include an absolute path didn't work - because paths were taken to always be relative. * Split out AST 'printing'. * Replace listener with List
* Section -> Part. * Kind -> Type Flags -> Kind for ASTPrinter::Part * Improve comments around ASTPrinter. * toString -> toText on Val derived types. toText appends to a StringBuilder. * Added toSlice free function. Added operator<< for Val derived types. Use << where appropriate in doing toText. * More work at mark down output. * Fill in sourceloc for enum case. Add more sophisticated location determination for EnumCase. Refactored documentation output into DocMarkdownWriter. * Improvements for sig output. * Split up slang-doc into extractor and writer. * WIP generic support for doc support. * Some refactoring to make DocExtractor have potential to be used without Decls. * Made doc extraction work without Decls. * Output generic parameters. * Add generic parameter extraction. * Added writing variables. * Add an interface test. * Fix toArray. * Support for extensions, and inheritance. * Disable the doc test. * Added flags to compileStdLib. * More work around handling generics in markdown output. * More improvements around associated type handling. * List method names only once. Output in/out/inout/const * Fix namespace printing. * WIP summarizing doc output. * Small fixes and improvements for doc output. * Output all stdlib in single doc file. * Remove compile flags from addBuiltinSource. * Find only unique signatures. First pass at trying to get requirements. * First pass at requirements for stdlib docs. * Remove __ function/methods * Added Target Availability * Add markup access. Make sections of stdlib hidden. * MarkdownAccess -> Visibility Add isVisible methods Use ASTPrinter to print decl name. * Add current stdlib doc output. * Disable doc test for now. * Fix clang issue. * Don't use bullets and numbering , just use numbering. * Put methods in source order. * Fix bad-operator-call.slang test that fails because it now outputs out parameters as such. * Refactor MarkDownWriter to separate 'extraction' from output. * Fix typo around @ lines. * Fix issue with extracting 'before' when preceeded by complex attributes/modifiers. * Fix handling of generics with the same name. * Work around for having overloading with generics - we don't want to output generic params as part of name. * Remove generic paramters from name. * Simplify handling of outputting overridable names. --- docs/stdlib-doc.md | 40938 +++++++++++++++++++ slang.h | 14 +- source/core/slang-list.h | 24 + source/slang/core.meta.slang | 40 +- source/slang/slang-api.cpp | 2 +- source/slang/slang-ast-print.cpp | 229 +- source/slang/slang-ast-print.h | 17 +- source/slang/slang-compiler.h | 2 +- source/slang/slang-doc-extractor.cpp | 88 +- source/slang/slang-doc-extractor.h | 13 +- source/slang/slang-doc-mark-down.cpp | 860 +- source/slang/slang-doc-mark-down.h | 62 +- source/slang/slang-options.cpp | 13 +- source/slang/slang.cpp | 39 +- tests/diagnostics/bad-operator-call.slang.expected | 76 +- tests/doc/doc.slang | 67 +- 16 files changed, 42219 insertions(+), 265 deletions(-) create mode 100644 docs/stdlib-doc.md diff --git a/docs/stdlib-doc.md b/docs/stdlib-doc.md new file mode 100644 index 000000000..2ac5f74e5 --- /dev/null +++ b/docs/stdlib-doc.md @@ -0,0 +1,40938 @@ +-------------------------------------------------------------------------------- +# `__BuiltinArithmeticType.init` + +## Signature + +``` +__BuiltinArithmeticType.init(int value); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `value` + +-------------------------------------------------------------------------------- +# `__BuiltinFloatingPointType.init` + +## Signature + +``` +__BuiltinFloatingPointType.init(float value); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `value` + +-------------------------------------------------------------------------------- +# `__BuiltinFloatingPointType.getPi` + +## Description + +Get the value of the mathematical constant pi in this type. + +## Signature + +``` +__BuiltinFloatingPointType.This __BuiltinFloatingPointType.getPi(); +``` + +## Target Availability + +`HLSL` + + +-------------------------------------------------------------------------------- +# `struct ConstantBuffer` + +## Generic Parameters + +* `T` + +-------------------------------------------------------------------------------- +# `struct TextureBuffer` + +## Generic Parameters + +* `T` + +-------------------------------------------------------------------------------- +# `struct ParameterBlock` + +## Generic Parameters + +* `T` + +-------------------------------------------------------------------------------- +# `struct SamplerState` + +## Description + +Sampling state for filtered texture fetches. + + +-------------------------------------------------------------------------------- +# `struct SamplerComparisonState` + +## Description + +Sampling state for filtered texture fetches that include a comparison operation before filtering. + + +-------------------------------------------------------------------------------- +# `struct SamplerTexture1D` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTexture1D.init` + +## Signature + +``` +SamplerTexture1D.init( + Texture1D t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRWTexture1D` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRWTexture1D.init` + +## Signature + +``` +SamplerRWTexture1D.init( + RWTexture1D t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTexture1D` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTexture1D.init` + +## Signature + +``` +SamplerRasterizerOrderedTexture1D.init( + RasterizerOrderedTexture1D t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerTexture1DMS` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTexture1DMS.init` + +## Signature + +``` +SamplerTexture1DMS.init( + Texture1DMS t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRWTexture1DMS` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRWTexture1DMS.init` + +## Signature + +``` +SamplerRWTexture1DMS.init( + RWTexture1DMS t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTexture1DMS` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTexture1DMS.init` + +## Signature + +``` +SamplerRasterizerOrderedTexture1DMS.init( + RasterizerOrderedTexture1DMS t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerTexture1DArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTexture1DArray.init` + +## Signature + +``` +SamplerTexture1DArray.init( + Texture1DArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRWTexture1DArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRWTexture1DArray.init` + +## Signature + +``` +SamplerRWTexture1DArray.init( + RWTexture1DArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTexture1DArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTexture1DArray.init` + +## Signature + +``` +SamplerRasterizerOrderedTexture1DArray.init( + RasterizerOrderedTexture1DArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerTexture1DMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTexture1DMSArray.init` + +## Signature + +``` +SamplerTexture1DMSArray.init( + Texture1DMSArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRWTexture1DMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRWTexture1DMSArray.init` + +## Signature + +``` +SamplerRWTexture1DMSArray.init( + RWTexture1DMSArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTexture1DMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTexture1DMSArray.init` + +## Signature + +``` +SamplerRasterizerOrderedTexture1DMSArray.init( + RasterizerOrderedTexture1DMSArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerTexture2D` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTexture2D.init` + +## Signature + +``` +SamplerTexture2D.init( + Texture2D t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRWTexture2D` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRWTexture2D.init` + +## Signature + +``` +SamplerRWTexture2D.init( + RWTexture2D t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTexture2D` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTexture2D.init` + +## Signature + +``` +SamplerRasterizerOrderedTexture2D.init( + RasterizerOrderedTexture2D t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerTexture2DMS` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTexture2DMS.init` + +## Signature + +``` +SamplerTexture2DMS.init( + Texture2DMS t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRWTexture2DMS` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRWTexture2DMS.init` + +## Signature + +``` +SamplerRWTexture2DMS.init( + RWTexture2DMS t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTexture2DMS` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTexture2DMS.init` + +## Signature + +``` +SamplerRasterizerOrderedTexture2DMS.init( + RasterizerOrderedTexture2DMS t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerTexture2DArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTexture2DArray.init` + +## Signature + +``` +SamplerTexture2DArray.init( + Texture2DArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRWTexture2DArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRWTexture2DArray.init` + +## Signature + +``` +SamplerRWTexture2DArray.init( + RWTexture2DArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTexture2DArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTexture2DArray.init` + +## Signature + +``` +SamplerRasterizerOrderedTexture2DArray.init( + RasterizerOrderedTexture2DArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerTexture2DMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTexture2DMSArray.init` + +## Signature + +``` +SamplerTexture2DMSArray.init( + Texture2DMSArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRWTexture2DMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRWTexture2DMSArray.init` + +## Signature + +``` +SamplerRWTexture2DMSArray.init( + RWTexture2DMSArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTexture2DMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTexture2DMSArray.init` + +## Signature + +``` +SamplerRasterizerOrderedTexture2DMSArray.init( + RasterizerOrderedTexture2DMSArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerTexture3D` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTexture3D.init` + +## Signature + +``` +SamplerTexture3D.init( + Texture3D t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRWTexture3D` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRWTexture3D.init` + +## Signature + +``` +SamplerRWTexture3D.init( + RWTexture3D t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTexture3D` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTexture3D.init` + +## Signature + +``` +SamplerRasterizerOrderedTexture3D.init( + RasterizerOrderedTexture3D t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerTexture3DMS` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTexture3DMS.init` + +## Signature + +``` +SamplerTexture3DMS.init( + Texture3DMS t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRWTexture3DMS` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRWTexture3DMS.init` + +## Signature + +``` +SamplerRWTexture3DMS.init( + RWTexture3DMS t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTexture3DMS` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTexture3DMS.init` + +## Signature + +``` +SamplerRasterizerOrderedTexture3DMS.init( + RasterizerOrderedTexture3DMS t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerTextureCube` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTextureCube.init` + +## Signature + +``` +SamplerTextureCube.init( + TextureCube t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTextureCube` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTextureCube.init` + +## Signature + +``` +SamplerRasterizerOrderedTextureCube.init( + RasterizerOrderedTextureCube t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerTextureCubeMS` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTextureCubeMS.init` + +## Signature + +``` +SamplerTextureCubeMS.init( + TextureCubeMS t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTextureCubeMS` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTextureCubeMS.init` + +## Signature + +``` +SamplerRasterizerOrderedTextureCubeMS.init( + RasterizerOrderedTextureCubeMS t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerTextureCubeArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTextureCubeArray.init` + +## Signature + +``` +SamplerTextureCubeArray.init( + TextureCubeArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTextureCubeArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTextureCubeArray.init` + +## Signature + +``` +SamplerRasterizerOrderedTextureCubeArray.init( + RasterizerOrderedTextureCubeArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerTextureCubeMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerTextureCubeMSArray.init` + +## Signature + +``` +SamplerTextureCubeMSArray.init( + TextureCubeMSArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `struct SamplerRasterizerOrderedTextureCubeMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `init` + +-------------------------------------------------------------------------------- +# `SamplerRasterizerOrderedTextureCubeMSArray.init` + +## Signature + +``` +SamplerRasterizerOrderedTextureCubeMSArray.init( + RasterizerOrderedTextureCubeMSArray t, + SamplerState s); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` +* `s` + +-------------------------------------------------------------------------------- +# `texture` + +## Signature + +``` +T texture( + SamplerTexture1D t, + vector location); +T texture( + SamplerRWTexture1D t, + vector location); +T texture( + SamplerRasterizerOrderedTexture1D t, + vector location); +T texture( + SamplerTexture1DMS t, + vector location); +T texture( + SamplerRWTexture1DMS t, + vector location); +T texture( + SamplerRasterizerOrderedTexture1DMS t, + vector location); +T texture( + SamplerTexture1DArray t, + vector location); +T texture( + SamplerRWTexture1DArray t, + vector location); +T texture( + SamplerRasterizerOrderedTexture1DArray t, + vector location); +T texture( + SamplerTexture1DMSArray t, + vector location); +T texture( + SamplerRWTexture1DMSArray t, + vector location); +T texture( + SamplerRasterizerOrderedTexture1DMSArray t, + vector location); +T texture( + SamplerTexture2D t, + vector location); +T texture( + SamplerRWTexture2D t, + vector location); +T texture( + SamplerRasterizerOrderedTexture2D t, + vector location); +T texture( + SamplerTexture2DMS t, + vector location); +T texture( + SamplerRWTexture2DMS t, + vector location); +T texture( + SamplerRasterizerOrderedTexture2DMS t, + vector location); +T texture( + SamplerTexture2DArray t, + vector location); +T texture( + SamplerRWTexture2DArray t, + vector location); +T texture( + SamplerRasterizerOrderedTexture2DArray t, + vector location); +T texture( + SamplerTexture2DMSArray t, + vector location); +T texture( + SamplerRWTexture2DMSArray t, + vector location); +T texture( + SamplerRasterizerOrderedTexture2DMSArray t, + vector location); +T texture( + SamplerTexture3D t, + vector location); +T texture( + SamplerRWTexture3D t, + vector location); +T texture( + SamplerRasterizerOrderedTexture3D t, + vector location); +T texture( + SamplerTexture3DMS t, + vector location); +T texture( + SamplerRWTexture3DMS t, + vector location); +T texture( + SamplerRasterizerOrderedTexture3DMS t, + vector location); +T texture( + SamplerTextureCube t, + vector location); +T texture( + SamplerRasterizerOrderedTextureCube t, + vector location); +T texture( + SamplerTextureCubeMS t, + vector location); +T texture( + SamplerRasterizerOrderedTextureCubeMS t, + vector location); +T texture( + SamplerTextureCubeArray t, + vector location); +T texture( + SamplerRasterizerOrderedTextureCubeArray t, + vector location); +T texture( + SamplerTextureCubeMSArray t, + vector location); +T texture( + SamplerRasterizerOrderedTextureCubeMSArray t, + vector location); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `t` +* `location` + +-------------------------------------------------------------------------------- +# `struct Texture1D` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `Texture1D.CalculateLevelOfDetail` + +## Signature + +``` +float Texture1D.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `Texture1D.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float Texture1D.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `Texture1D.GetDimensions` + +## Signature + +``` +void Texture1D.GetDimensions(out uint width); +void Texture1D.GetDimensions( + uint mipLevel, + out uint width, + out uint numberOfLevels); +void Texture1D.GetDimensions(out float width); +void Texture1D.GetDimensions( + uint mipLevel, + out float width, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `Texture1D.Load` + +## Signature + +``` +/// See Target Availability 1 +T Texture1D.Load(vector location); +/// See Target Availability 2 +T Texture1D.Load( + vector location, + vector offset); +/// See Target Availability 3 +T Texture1D.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `Texture1D.subscript` + +## Signature + +``` +T Texture1D.subscript(uint location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `Texture1D.Sample` + +## Signature + +``` +/// See Target Availability 1 +T Texture1D.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T Texture1D.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T Texture1D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T Texture1D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `Texture1D.SampleBias` + +## Signature + +``` +T Texture1D.SampleBias( + SamplerState s, + vector location, + float bias); +T Texture1D.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture1D.SampleCmp` + +## Signature + +``` +float Texture1D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float Texture1D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture1D.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float Texture1D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float Texture1D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture1D.SampleGrad` + +## Signature + +``` +T Texture1D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T Texture1D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T Texture1D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `Texture1D.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T Texture1D.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T Texture1D.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension Texture1D` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture1D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.Gather( + SamplerState s, + vector location); +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherRed( + SamplerState s, + vector location); +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherGreen( + SamplerState s, + vector location); +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherBlue( + SamplerState s, + vector location); +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location); +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture1D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture1D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.Gather( + SamplerState s, + vector location); +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherRed( + SamplerState s, + vector location); +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherGreen( + SamplerState s, + vector location); +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherBlue( + SamplerState s, + vector location); +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location); +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture1D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture1D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.Gather( + SamplerState s, + vector location); +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherRed( + SamplerState s, + vector location); +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherGreen( + SamplerState s, + vector location); +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherBlue( + SamplerState s, + vector location); +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location); +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture1D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture1D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.Gather( + SamplerState s, + vector location); +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherRed( + SamplerState s, + vector location); +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherGreen( + SamplerState s, + vector location); +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherBlue( + SamplerState s, + vector location); +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location); +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct RWTexture1D` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `RWTexture1D.CalculateLevelOfDetail` + +## Signature + +``` +float RWTexture1D.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture1D.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float RWTexture1D.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GetDimensions` + +## Signature + +``` +void RWTexture1D.GetDimensions(out uint width); +void RWTexture1D.GetDimensions( + uint mipLevel, + out uint width, + out uint numberOfLevels); +void RWTexture1D.GetDimensions(out float width); +void RWTexture1D.GetDimensions( + uint mipLevel, + out float width, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RWTexture1D.Load` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture1D.Load(vector location); +/// See Target Availability 2 +T RWTexture1D.Load( + vector location, + vector offset); +/// See Target Availability 3 +T RWTexture1D.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture1D.subscript` + +## Signature + +``` +T RWTexture1D.subscript(uint location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture1D.Sample` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture1D.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T RWTexture1D.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T RWTexture1D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T RWTexture1D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture1D.SampleBias` + +## Signature + +``` +T RWTexture1D.SampleBias( + SamplerState s, + vector location, + float bias); +T RWTexture1D.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture1D.SampleCmp` + +## Signature + +``` +float RWTexture1D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float RWTexture1D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture1D.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float RWTexture1D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float RWTexture1D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture1D.SampleGrad` + +## Signature + +``` +T RWTexture1D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T RWTexture1D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T RWTexture1D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `RWTexture1D.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture1D.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T RWTexture1D.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension RWTexture1D` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture1D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.Gather( + SamplerState s, + vector location); +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location); +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location); +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location); +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location); +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture1D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture1D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.Gather( + SamplerState s, + vector location); +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location); +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location); +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location); +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location); +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture1D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture1D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.Gather( + SamplerState s, + vector location); +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location); +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location); +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location); +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location); +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture1D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture1D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.Gather( + SamplerState s, + vector location); +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location); +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location); +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location); +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location); +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTexture1D` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.CalculateLevelOfDetail` + +## Signature + +``` +float RasterizerOrderedTexture1D.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float RasterizerOrderedTexture1D.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTexture1D.GetDimensions(out uint width); +void RasterizerOrderedTexture1D.GetDimensions( + uint mipLevel, + out uint width, + out uint numberOfLevels); +void RasterizerOrderedTexture1D.GetDimensions(out float width); +void RasterizerOrderedTexture1D.GetDimensions( + uint mipLevel, + out float width, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture1D.Load(vector location); +T RasterizerOrderedTexture1D.Load( + vector location, + vector offset); +/// See Target Availability 2 +T RasterizerOrderedTexture1D.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.subscript` + +## Signature + +``` +T RasterizerOrderedTexture1D.subscript(uint location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.Sample` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture1D.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T RasterizerOrderedTexture1D.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T RasterizerOrderedTexture1D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T RasterizerOrderedTexture1D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.SampleBias` + +## Signature + +``` +T RasterizerOrderedTexture1D.SampleBias( + SamplerState s, + vector location, + float bias); +T RasterizerOrderedTexture1D.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.SampleCmp` + +## Signature + +``` +float RasterizerOrderedTexture1D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float RasterizerOrderedTexture1D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float RasterizerOrderedTexture1D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float RasterizerOrderedTexture1D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.SampleGrad` + +## Signature + +``` +T RasterizerOrderedTexture1D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T RasterizerOrderedTexture1D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T RasterizerOrderedTexture1D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture1D.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T RasterizerOrderedTexture1D.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture1D` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture1D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture1D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture1D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct Texture1DMS` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `Texture1DMS.GetDimensions` + +## Signature + +``` +void Texture1DMS.GetDimensions( + out uint width, + out uint sampleCount); +void Texture1DMS.GetDimensions( + uint mipLevel, + out uint width, + out uint sampleCount, + out uint numberOfLevels); +void Texture1DMS.GetDimensions( + out float width, + out float sampleCount); +void Texture1DMS.GetDimensions( + uint mipLevel, + out float width, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `Texture1DMS.GetSamplePosition` + +## Signature + +``` +vector Texture1DMS.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `Texture1DMS.Load` + +## Signature + +``` +/// See Target Availability 1 +T Texture1DMS.Load( + vector location, + int sampleIndex); +T Texture1DMS.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T Texture1DMS.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `Texture1DMS.subscript` + +## Signature + +``` +T Texture1DMS.subscript(uint location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct RWTexture1DMS` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RWTexture1DMS.GetDimensions` + +## Signature + +``` +void RWTexture1DMS.GetDimensions( + out uint width, + out uint sampleCount); +void RWTexture1DMS.GetDimensions( + uint mipLevel, + out uint width, + out uint sampleCount, + out uint numberOfLevels); +void RWTexture1DMS.GetDimensions( + out float width, + out float sampleCount); +void RWTexture1DMS.GetDimensions( + uint mipLevel, + out float width, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RWTexture1DMS.GetSamplePosition` + +## Signature + +``` +vector RWTexture1DMS.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `RWTexture1DMS.Load` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture1DMS.Load( + vector location, + int sampleIndex); +T RWTexture1DMS.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T RWTexture1DMS.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture1DMS.subscript` + +## Signature + +``` +T RWTexture1DMS.subscript(uint location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTexture1DMS` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DMS.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTexture1DMS.GetDimensions( + out uint width, + out uint sampleCount); +void RasterizerOrderedTexture1DMS.GetDimensions( + uint mipLevel, + out uint width, + out uint sampleCount, + out uint numberOfLevels); +void RasterizerOrderedTexture1DMS.GetDimensions( + out float width, + out float sampleCount); +void RasterizerOrderedTexture1DMS.GetDimensions( + uint mipLevel, + out float width, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DMS.GetSamplePosition` + +## Signature + +``` +vector RasterizerOrderedTexture1DMS.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DMS.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture1DMS.Load( + vector location, + int sampleIndex); +T RasterizerOrderedTexture1DMS.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T RasterizerOrderedTexture1DMS.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DMS.subscript` + +## Signature + +``` +T RasterizerOrderedTexture1DMS.subscript(uint location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct Texture1DArray` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `Texture1DArray.CalculateLevelOfDetail` + +## Signature + +``` +float Texture1DArray.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `Texture1DArray.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float Texture1DArray.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GetDimensions` + +## Signature + +``` +void Texture1DArray.GetDimensions( + out uint width, + out uint elements); +void Texture1DArray.GetDimensions( + uint mipLevel, + out uint width, + out uint elements, + out uint numberOfLevels); +void Texture1DArray.GetDimensions( + out float width, + out float elements); +void Texture1DArray.GetDimensions( + uint mipLevel, + out float width, + out float elements, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `elements` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `Texture1DArray.Load` + +## Signature + +``` +/// See Target Availability 1 +T Texture1DArray.Load(vector location); +T Texture1DArray.Load( + vector location, + vector offset); +/// See Target Availability 2 +T Texture1DArray.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `Texture1DArray.subscript` + +## Signature + +``` +T Texture1DArray.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `Texture1DArray.Sample` + +## Signature + +``` +/// See Target Availability 1 +T Texture1DArray.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T Texture1DArray.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T Texture1DArray.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T Texture1DArray.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `Texture1DArray.SampleBias` + +## Signature + +``` +T Texture1DArray.SampleBias( + SamplerState s, + vector location, + float bias); +T Texture1DArray.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture1DArray.SampleCmp` + +## Signature + +``` +float Texture1DArray.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float Texture1DArray.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture1DArray.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float Texture1DArray.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float Texture1DArray.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture1DArray.SampleGrad` + +## Signature + +``` +T Texture1DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T Texture1DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T Texture1DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `Texture1DArray.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T Texture1DArray.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T Texture1DArray.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension Texture1DArray` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture1DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.Gather( + SamplerState s, + vector location); +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location); +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location); +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location); +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location); +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture1DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture1DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.Gather( + SamplerState s, + vector location); +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location); +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location); +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location); +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location); +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture1DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture1DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.Gather( + SamplerState s, + vector location); +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location); +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location); +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location); +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location); +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture1DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture1DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.Gather( + SamplerState s, + vector location); +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location); +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location); +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location); +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture1DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location); +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct RWTexture1DArray` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.CalculateLevelOfDetail` + +## Signature + +``` +float RWTexture1DArray.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float RWTexture1DArray.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GetDimensions` + +## Signature + +``` +void RWTexture1DArray.GetDimensions( + out uint width, + out uint elements); +void RWTexture1DArray.GetDimensions( + uint mipLevel, + out uint width, + out uint elements, + out uint numberOfLevels); +void RWTexture1DArray.GetDimensions( + out float width, + out float elements); +void RWTexture1DArray.GetDimensions( + uint mipLevel, + out float width, + out float elements, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `elements` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.Load` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture1DArray.Load(vector location); +/// See Target Availability 2 +T RWTexture1DArray.Load( + vector location, + vector offset); +/// See Target Availability 3 +T RWTexture1DArray.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.subscript` + +## Signature + +``` +T RWTexture1DArray.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.Sample` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture1DArray.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T RWTexture1DArray.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T RWTexture1DArray.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T RWTexture1DArray.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.SampleBias` + +## Signature + +``` +T RWTexture1DArray.SampleBias( + SamplerState s, + vector location, + float bias); +T RWTexture1DArray.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.SampleCmp` + +## Signature + +``` +float RWTexture1DArray.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float RWTexture1DArray.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float RWTexture1DArray.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float RWTexture1DArray.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.SampleGrad` + +## Signature + +``` +T RWTexture1DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T RWTexture1DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T RWTexture1DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture1DArray.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T RWTexture1DArray.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension RWTexture1DArray` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location); +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture1DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location); +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture1DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location); +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture1DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location); +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture1DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location); +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTexture1DArray` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.CalculateLevelOfDetail` + +## Signature + +``` +float RasterizerOrderedTexture1DArray.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float RasterizerOrderedTexture1DArray.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTexture1DArray.GetDimensions( + out uint width, + out uint elements); +void RasterizerOrderedTexture1DArray.GetDimensions( + uint mipLevel, + out uint width, + out uint elements, + out uint numberOfLevels); +void RasterizerOrderedTexture1DArray.GetDimensions( + out float width, + out float elements); +void RasterizerOrderedTexture1DArray.GetDimensions( + uint mipLevel, + out float width, + out float elements, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `elements` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture1DArray.Load(vector location); +T RasterizerOrderedTexture1DArray.Load( + vector location, + vector offset); +/// See Target Availability 2 +T RasterizerOrderedTexture1DArray.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.subscript` + +## Signature + +``` +T RasterizerOrderedTexture1DArray.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.Sample` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture1DArray.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T RasterizerOrderedTexture1DArray.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T RasterizerOrderedTexture1DArray.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T RasterizerOrderedTexture1DArray.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.SampleBias` + +## Signature + +``` +T RasterizerOrderedTexture1DArray.SampleBias( + SamplerState s, + vector location, + float bias); +T RasterizerOrderedTexture1DArray.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.SampleCmp` + +## Signature + +``` +float RasterizerOrderedTexture1DArray.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float RasterizerOrderedTexture1DArray.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float RasterizerOrderedTexture1DArray.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float RasterizerOrderedTexture1DArray.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.SampleGrad` + +## Signature + +``` +T RasterizerOrderedTexture1DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T RasterizerOrderedTexture1DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T RasterizerOrderedTexture1DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture1DArray.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T RasterizerOrderedTexture1DArray.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture1DArray` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture1DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture1DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture1DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture1DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct Texture1DMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `Texture1DMSArray.GetDimensions` + +## Signature + +``` +void Texture1DMSArray.GetDimensions( + out uint width, + out uint elements, + out uint sampleCount); +void Texture1DMSArray.GetDimensions( + uint mipLevel, + out uint width, + out uint elements, + out uint sampleCount, + out uint numberOfLevels); +void Texture1DMSArray.GetDimensions( + out float width, + out float elements, + out float sampleCount); +void Texture1DMSArray.GetDimensions( + uint mipLevel, + out float width, + out float elements, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `elements` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `Texture1DMSArray.GetSamplePosition` + +## Signature + +``` +vector Texture1DMSArray.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `Texture1DMSArray.Load` + +## Signature + +``` +/// See Target Availability 1 +T Texture1DMSArray.Load( + vector location, + int sampleIndex); +T Texture1DMSArray.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T Texture1DMSArray.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `Texture1DMSArray.subscript` + +## Signature + +``` +T Texture1DMSArray.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct RWTexture1DMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RWTexture1DMSArray.GetDimensions` + +## Signature + +``` +void RWTexture1DMSArray.GetDimensions( + out uint width, + out uint elements, + out uint sampleCount); +void RWTexture1DMSArray.GetDimensions( + uint mipLevel, + out uint width, + out uint elements, + out uint sampleCount, + out uint numberOfLevels); +void RWTexture1DMSArray.GetDimensions( + out float width, + out float elements, + out float sampleCount); +void RWTexture1DMSArray.GetDimensions( + uint mipLevel, + out float width, + out float elements, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `elements` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RWTexture1DMSArray.GetSamplePosition` + +## Signature + +``` +vector RWTexture1DMSArray.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `RWTexture1DMSArray.Load` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture1DMSArray.Load( + vector location, + int sampleIndex); +T RWTexture1DMSArray.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T RWTexture1DMSArray.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture1DMSArray.subscript` + +## Signature + +``` +T RWTexture1DMSArray.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTexture1DMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DMSArray.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTexture1DMSArray.GetDimensions( + out uint width, + out uint elements, + out uint sampleCount); +void RasterizerOrderedTexture1DMSArray.GetDimensions( + uint mipLevel, + out uint width, + out uint elements, + out uint sampleCount, + out uint numberOfLevels); +void RasterizerOrderedTexture1DMSArray.GetDimensions( + out float width, + out float elements, + out float sampleCount); +void RasterizerOrderedTexture1DMSArray.GetDimensions( + uint mipLevel, + out float width, + out float elements, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `elements` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DMSArray.GetSamplePosition` + +## Signature + +``` +vector RasterizerOrderedTexture1DMSArray.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DMSArray.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture1DMSArray.Load( + vector location, + int sampleIndex); +T RasterizerOrderedTexture1DMSArray.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T RasterizerOrderedTexture1DMSArray.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture1DMSArray.subscript` + +## Signature + +``` +T RasterizerOrderedTexture1DMSArray.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct Texture2D` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `Texture2D.CalculateLevelOfDetail` + +## Signature + +``` +float Texture2D.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `Texture2D.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float Texture2D.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `Texture2D.GetDimensions` + +## Signature + +``` +void Texture2D.GetDimensions( + out uint width, + out uint height); +void Texture2D.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint numberOfLevels); +void Texture2D.GetDimensions( + out float width, + out float height); +void Texture2D.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `Texture2D.Load` + +## Signature + +``` +/// See Target Availability 1 +T Texture2D.Load(vector location); +T Texture2D.Load( + vector location, + vector offset); +/// See Target Availability 2 +T Texture2D.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `Texture2D.subscript` + +## Signature + +``` +T Texture2D.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `Texture2D.Sample` + +## Signature + +``` +/// See Target Availability 1 +T Texture2D.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T Texture2D.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T Texture2D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T Texture2D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `Texture2D.SampleBias` + +## Signature + +``` +T Texture2D.SampleBias( + SamplerState s, + vector location, + float bias); +T Texture2D.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture2D.SampleCmp` + +## Signature + +``` +float Texture2D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float Texture2D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture2D.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float Texture2D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float Texture2D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture2D.SampleGrad` + +## Signature + +``` +T Texture2D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T Texture2D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T Texture2D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `Texture2D.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T Texture2D.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T Texture2D.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension Texture2D` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture2D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture2D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture2D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture2D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture2D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture2D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture2D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct RWTexture2D` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `RWTexture2D.CalculateLevelOfDetail` + +## Signature + +``` +float RWTexture2D.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture2D.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float RWTexture2D.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GetDimensions` + +## Signature + +``` +void RWTexture2D.GetDimensions( + out uint width, + out uint height); +void RWTexture2D.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint numberOfLevels); +void RWTexture2D.GetDimensions( + out float width, + out float height); +void RWTexture2D.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RWTexture2D.Load` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture2D.Load(vector location); +/// See Target Availability 2 +T RWTexture2D.Load( + vector location, + vector offset); +/// See Target Availability 3 +T RWTexture2D.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture2D.subscript` + +## Signature + +``` +T RWTexture2D.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture2D.Sample` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture2D.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T RWTexture2D.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T RWTexture2D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T RWTexture2D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture2D.SampleBias` + +## Signature + +``` +T RWTexture2D.SampleBias( + SamplerState s, + vector location, + float bias); +T RWTexture2D.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture2D.SampleCmp` + +## Signature + +``` +float RWTexture2D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float RWTexture2D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture2D.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float RWTexture2D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float RWTexture2D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture2D.SampleGrad` + +## Signature + +``` +T RWTexture2D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T RWTexture2D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T RWTexture2D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `RWTexture2D.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture2D.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T RWTexture2D.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension RWTexture2D` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture2D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture2D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture2D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture2D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture2D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture2D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture2D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTexture2D` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.CalculateLevelOfDetail` + +## Signature + +``` +float RasterizerOrderedTexture2D.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float RasterizerOrderedTexture2D.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTexture2D.GetDimensions( + out uint width, + out uint height); +void RasterizerOrderedTexture2D.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint numberOfLevels); +void RasterizerOrderedTexture2D.GetDimensions( + out float width, + out float height); +void RasterizerOrderedTexture2D.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture2D.Load(vector location); +T RasterizerOrderedTexture2D.Load( + vector location, + vector offset); +/// See Target Availability 2 +T RasterizerOrderedTexture2D.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.subscript` + +## Signature + +``` +T RasterizerOrderedTexture2D.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.Sample` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture2D.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T RasterizerOrderedTexture2D.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T RasterizerOrderedTexture2D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T RasterizerOrderedTexture2D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.SampleBias` + +## Signature + +``` +T RasterizerOrderedTexture2D.SampleBias( + SamplerState s, + vector location, + float bias); +T RasterizerOrderedTexture2D.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.SampleCmp` + +## Signature + +``` +float RasterizerOrderedTexture2D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float RasterizerOrderedTexture2D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float RasterizerOrderedTexture2D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float RasterizerOrderedTexture2D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.SampleGrad` + +## Signature + +``` +T RasterizerOrderedTexture2D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T RasterizerOrderedTexture2D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T RasterizerOrderedTexture2D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture2D.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T RasterizerOrderedTexture2D.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture2D` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture2D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture2D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture2D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct Texture2DMS` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `Texture2DMS.GetDimensions` + +## Signature + +``` +void Texture2DMS.GetDimensions( + out uint width, + out uint height, + out uint sampleCount); +void Texture2DMS.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint sampleCount, + out uint numberOfLevels); +void Texture2DMS.GetDimensions( + out float width, + out float height, + out float sampleCount); +void Texture2DMS.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `Texture2DMS.GetSamplePosition` + +## Signature + +``` +vector Texture2DMS.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `Texture2DMS.Load` + +## Signature + +``` +/// See Target Availability 1 +T Texture2DMS.Load( + vector location, + int sampleIndex); +T Texture2DMS.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T Texture2DMS.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `Texture2DMS.subscript` + +## Signature + +``` +T Texture2DMS.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct RWTexture2DMS` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RWTexture2DMS.GetDimensions` + +## Signature + +``` +void RWTexture2DMS.GetDimensions( + out uint width, + out uint height, + out uint sampleCount); +void RWTexture2DMS.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint sampleCount, + out uint numberOfLevels); +void RWTexture2DMS.GetDimensions( + out float width, + out float height, + out float sampleCount); +void RWTexture2DMS.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RWTexture2DMS.GetSamplePosition` + +## Signature + +``` +vector RWTexture2DMS.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `RWTexture2DMS.Load` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture2DMS.Load( + vector location, + int sampleIndex); +T RWTexture2DMS.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T RWTexture2DMS.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture2DMS.subscript` + +## Signature + +``` +T RWTexture2DMS.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTexture2DMS` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DMS.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTexture2DMS.GetDimensions( + out uint width, + out uint height, + out uint sampleCount); +void RasterizerOrderedTexture2DMS.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint sampleCount, + out uint numberOfLevels); +void RasterizerOrderedTexture2DMS.GetDimensions( + out float width, + out float height, + out float sampleCount); +void RasterizerOrderedTexture2DMS.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DMS.GetSamplePosition` + +## Signature + +``` +vector RasterizerOrderedTexture2DMS.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DMS.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture2DMS.Load( + vector location, + int sampleIndex); +T RasterizerOrderedTexture2DMS.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T RasterizerOrderedTexture2DMS.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DMS.subscript` + +## Signature + +``` +T RasterizerOrderedTexture2DMS.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct Texture2DArray` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `Texture2DArray.CalculateLevelOfDetail` + +## Signature + +``` +float Texture2DArray.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `Texture2DArray.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float Texture2DArray.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GetDimensions` + +## Signature + +``` +void Texture2DArray.GetDimensions( + out uint width, + out uint height, + out uint elements); +void Texture2DArray.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint elements, + out uint numberOfLevels); +void Texture2DArray.GetDimensions( + out float width, + out float height, + out float elements); +void Texture2DArray.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float elements, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `elements` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `Texture2DArray.Load` + +## Signature + +``` +/// See Target Availability 1 +T Texture2DArray.Load(vector location); +T Texture2DArray.Load( + vector location, + vector offset); +/// See Target Availability 2 +T Texture2DArray.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `Texture2DArray.subscript` + +## Signature + +``` +T Texture2DArray.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `Texture2DArray.Sample` + +## Signature + +``` +/// See Target Availability 1 +T Texture2DArray.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T Texture2DArray.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T Texture2DArray.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T Texture2DArray.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `Texture2DArray.SampleBias` + +## Signature + +``` +T Texture2DArray.SampleBias( + SamplerState s, + vector location, + float bias); +T Texture2DArray.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture2DArray.SampleCmp` + +## Signature + +``` +float Texture2DArray.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float Texture2DArray.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture2DArray.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float Texture2DArray.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float Texture2DArray.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture2DArray.SampleGrad` + +## Signature + +``` +T Texture2DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T Texture2DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T Texture2DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `Texture2DArray.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T Texture2DArray.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T Texture2DArray.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension Texture2DArray` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture2DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture2DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture2DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture2DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture2DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture2DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture2DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture2DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector Texture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct RWTexture2DArray` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.CalculateLevelOfDetail` + +## Signature + +``` +float RWTexture2DArray.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float RWTexture2DArray.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GetDimensions` + +## Signature + +``` +void RWTexture2DArray.GetDimensions( + out uint width, + out uint height, + out uint elements); +void RWTexture2DArray.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint elements, + out uint numberOfLevels); +void RWTexture2DArray.GetDimensions( + out float width, + out float height, + out float elements); +void RWTexture2DArray.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float elements, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `elements` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.Load` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture2DArray.Load(vector location); +/// See Target Availability 2 +T RWTexture2DArray.Load( + vector location, + vector offset); +/// See Target Availability 3 +T RWTexture2DArray.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.subscript` + +## Signature + +``` +T RWTexture2DArray.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.Sample` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture2DArray.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T RWTexture2DArray.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T RWTexture2DArray.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T RWTexture2DArray.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.SampleBias` + +## Signature + +``` +T RWTexture2DArray.SampleBias( + SamplerState s, + vector location, + float bias); +T RWTexture2DArray.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.SampleCmp` + +## Signature + +``` +float RWTexture2DArray.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float RWTexture2DArray.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float RWTexture2DArray.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float RWTexture2DArray.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.SampleGrad` + +## Signature + +``` +T RWTexture2DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T RWTexture2DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T RWTexture2DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture2DArray.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T RWTexture2DArray.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension RWTexture2DArray` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture2DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture2DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture2DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture2DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RWTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTexture2DArray` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.CalculateLevelOfDetail` + +## Signature + +``` +float RasterizerOrderedTexture2DArray.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float RasterizerOrderedTexture2DArray.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTexture2DArray.GetDimensions( + out uint width, + out uint height, + out uint elements); +void RasterizerOrderedTexture2DArray.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint elements, + out uint numberOfLevels); +void RasterizerOrderedTexture2DArray.GetDimensions( + out float width, + out float height, + out float elements); +void RasterizerOrderedTexture2DArray.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float elements, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `elements` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture2DArray.Load(vector location); +T RasterizerOrderedTexture2DArray.Load( + vector location, + vector offset); +/// See Target Availability 2 +T RasterizerOrderedTexture2DArray.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.subscript` + +## Signature + +``` +T RasterizerOrderedTexture2DArray.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.Sample` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture2DArray.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T RasterizerOrderedTexture2DArray.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T RasterizerOrderedTexture2DArray.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T RasterizerOrderedTexture2DArray.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.SampleBias` + +## Signature + +``` +T RasterizerOrderedTexture2DArray.SampleBias( + SamplerState s, + vector location, + float bias); +T RasterizerOrderedTexture2DArray.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.SampleCmp` + +## Signature + +``` +float RasterizerOrderedTexture2DArray.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float RasterizerOrderedTexture2DArray.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float RasterizerOrderedTexture2DArray.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float RasterizerOrderedTexture2DArray.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.SampleGrad` + +## Signature + +``` +T RasterizerOrderedTexture2DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T RasterizerOrderedTexture2DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T RasterizerOrderedTexture2DArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture2DArray.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T RasterizerOrderedTexture2DArray.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture2DArray` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture2DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture2DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture2DArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 2 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 3 +vector RasterizerOrderedTexture2DArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct Texture2DMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `Texture2DMSArray.GetDimensions` + +## Signature + +``` +void Texture2DMSArray.GetDimensions( + out uint width, + out uint height, + out uint elements, + out uint sampleCount); +void Texture2DMSArray.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint elements, + out uint sampleCount, + out uint numberOfLevels); +void Texture2DMSArray.GetDimensions( + out float width, + out float height, + out float elements, + out float sampleCount); +void Texture2DMSArray.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float elements, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `elements` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `Texture2DMSArray.GetSamplePosition` + +## Signature + +``` +vector Texture2DMSArray.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `Texture2DMSArray.Load` + +## Signature + +``` +/// See Target Availability 1 +T Texture2DMSArray.Load( + vector location, + int sampleIndex); +T Texture2DMSArray.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T Texture2DMSArray.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `Texture2DMSArray.subscript` + +## Signature + +``` +T Texture2DMSArray.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct RWTexture2DMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RWTexture2DMSArray.GetDimensions` + +## Signature + +``` +void RWTexture2DMSArray.GetDimensions( + out uint width, + out uint height, + out uint elements, + out uint sampleCount); +void RWTexture2DMSArray.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint elements, + out uint sampleCount, + out uint numberOfLevels); +void RWTexture2DMSArray.GetDimensions( + out float width, + out float height, + out float elements, + out float sampleCount); +void RWTexture2DMSArray.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float elements, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `elements` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RWTexture2DMSArray.GetSamplePosition` + +## Signature + +``` +vector RWTexture2DMSArray.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `RWTexture2DMSArray.Load` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture2DMSArray.Load( + vector location, + int sampleIndex); +T RWTexture2DMSArray.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T RWTexture2DMSArray.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture2DMSArray.subscript` + +## Signature + +``` +T RWTexture2DMSArray.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTexture2DMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DMSArray.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTexture2DMSArray.GetDimensions( + out uint width, + out uint height, + out uint elements, + out uint sampleCount); +void RasterizerOrderedTexture2DMSArray.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint elements, + out uint sampleCount, + out uint numberOfLevels); +void RasterizerOrderedTexture2DMSArray.GetDimensions( + out float width, + out float height, + out float elements, + out float sampleCount); +void RasterizerOrderedTexture2DMSArray.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float elements, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `elements` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DMSArray.GetSamplePosition` + +## Signature + +``` +vector RasterizerOrderedTexture2DMSArray.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DMSArray.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture2DMSArray.Load( + vector location, + int sampleIndex); +T RasterizerOrderedTexture2DMSArray.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T RasterizerOrderedTexture2DMSArray.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture2DMSArray.subscript` + +## Signature + +``` +T RasterizerOrderedTexture2DMSArray.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct Texture3D` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `Texture3D.CalculateLevelOfDetail` + +## Signature + +``` +float Texture3D.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `Texture3D.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float Texture3D.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `Texture3D.GetDimensions` + +## Signature + +``` +void Texture3D.GetDimensions( + out uint width, + out uint height, + out uint depth); +void Texture3D.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint depth, + out uint numberOfLevels); +void Texture3D.GetDimensions( + out float width, + out float height, + out float depth); +void Texture3D.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float depth, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `depth` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `Texture3D.Load` + +## Signature + +``` +/// See Target Availability 1 +T Texture3D.Load(vector location); +T Texture3D.Load( + vector location, + vector offset); +/// See Target Availability 2 +T Texture3D.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `Texture3D.subscript` + +## Signature + +``` +T Texture3D.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `Texture3D.Sample` + +## Signature + +``` +/// See Target Availability 1 +T Texture3D.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T Texture3D.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T Texture3D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T Texture3D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `Texture3D.SampleBias` + +## Signature + +``` +T Texture3D.SampleBias( + SamplerState s, + vector location, + float bias); +T Texture3D.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture3D.SampleCmp` + +## Signature + +``` +float Texture3D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float Texture3D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture3D.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float Texture3D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float Texture3D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `Texture3D.SampleGrad` + +## Signature + +``` +T Texture3D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T Texture3D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T Texture3D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `Texture3D.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T Texture3D.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T Texture3D.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension Texture3D` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture3D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.Gather( + SamplerState s, + vector location); +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherRed( + SamplerState s, + vector location); +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherGreen( + SamplerState s, + vector location); +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherBlue( + SamplerState s, + vector location); +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location); +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture3D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture3D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.Gather( + SamplerState s, + vector location); +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherRed( + SamplerState s, + vector location); +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherGreen( + SamplerState s, + vector location); +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherBlue( + SamplerState s, + vector location); +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location); +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture3D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture3D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.Gather( + SamplerState s, + vector location); +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherRed( + SamplerState s, + vector location); +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherGreen( + SamplerState s, + vector location); +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherBlue( + SamplerState s, + vector location); +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location); +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension Texture3D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `Texture3D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.Gather( + SamplerState s, + vector location); +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherRed( + SamplerState s, + vector location); +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherGreen( + SamplerState s, + vector location); +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherBlue( + SamplerState s, + vector location); +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `Texture3D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location); +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector Texture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct RWTexture3D` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `RWTexture3D.CalculateLevelOfDetail` + +## Signature + +``` +float RWTexture3D.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture3D.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float RWTexture3D.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GetDimensions` + +## Signature + +``` +void RWTexture3D.GetDimensions( + out uint width, + out uint height, + out uint depth); +void RWTexture3D.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint depth, + out uint numberOfLevels); +void RWTexture3D.GetDimensions( + out float width, + out float height, + out float depth); +void RWTexture3D.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float depth, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `depth` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RWTexture3D.Load` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture3D.Load(vector location); +/// See Target Availability 2 +T RWTexture3D.Load( + vector location, + vector offset); +/// See Target Availability 3 +T RWTexture3D.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture3D.subscript` + +## Signature + +``` +T RWTexture3D.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `RWTexture3D.Sample` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture3D.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T RWTexture3D.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T RWTexture3D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T RWTexture3D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture3D.SampleBias` + +## Signature + +``` +T RWTexture3D.SampleBias( + SamplerState s, + vector location, + float bias); +T RWTexture3D.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture3D.SampleCmp` + +## Signature + +``` +float RWTexture3D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float RWTexture3D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture3D.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float RWTexture3D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float RWTexture3D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RWTexture3D.SampleGrad` + +## Signature + +``` +T RWTexture3D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T RWTexture3D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T RWTexture3D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `RWTexture3D.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture3D.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T RWTexture3D.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension RWTexture3D` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture3D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.Gather( + SamplerState s, + vector location); +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location); +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location); +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location); +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location); +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture3D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture3D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.Gather( + SamplerState s, + vector location); +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location); +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location); +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location); +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location); +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture3D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture3D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.Gather( + SamplerState s, + vector location); +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location); +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location); +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location); +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location); +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RWTexture3D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RWTexture3D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.Gather( + SamplerState s, + vector location); +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location); +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location); +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location); +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RWTexture3D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location); +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RWTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTexture3D` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `subscript` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.CalculateLevelOfDetail` + +## Signature + +``` +float RasterizerOrderedTexture3D.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float RasterizerOrderedTexture3D.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTexture3D.GetDimensions( + out uint width, + out uint height, + out uint depth); +void RasterizerOrderedTexture3D.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint depth, + out uint numberOfLevels); +void RasterizerOrderedTexture3D.GetDimensions( + out float width, + out float height, + out float depth); +void RasterizerOrderedTexture3D.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float depth, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `depth` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture3D.Load(vector location); +T RasterizerOrderedTexture3D.Load( + vector location, + vector offset); +/// See Target Availability 2 +T RasterizerOrderedTexture3D.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.subscript` + +## Signature + +``` +T RasterizerOrderedTexture3D.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.Sample` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture3D.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T RasterizerOrderedTexture3D.Sample( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 3 +T RasterizerOrderedTexture3D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp); +T RasterizerOrderedTexture3D.Sample( + SamplerState s, + vector location, + vector offset, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.SampleBias` + +## Signature + +``` +T RasterizerOrderedTexture3D.SampleBias( + SamplerState s, + vector location, + float bias); +T RasterizerOrderedTexture3D.SampleBias( + SamplerState s, + vector location, + float bias, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.SampleCmp` + +## Signature + +``` +float RasterizerOrderedTexture3D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +float RasterizerOrderedTexture3D.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.SampleCmpLevelZero` + +## Signature + +``` +/// See Target Availability 1 +float RasterizerOrderedTexture3D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +/// See Target Availability 2 +float RasterizerOrderedTexture3D.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue, + vector offset); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` +* `offset` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.SampleGrad` + +## Signature + +``` +T RasterizerOrderedTexture3D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +T RasterizerOrderedTexture3D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset); +T RasterizerOrderedTexture3D.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY, + vector offset, + float lodClamp); +``` + +## Requirements + +`GLSL GL_ARB_sparse_texture_clamp` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` +* `offset` +* `lodClamp` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.SampleLevel` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture3D.SampleLevel( + SamplerState s, + vector location, + float level); +/// See Target Availability 2 +T RasterizerOrderedTexture3D.SampleLevel( + SamplerState s, + vector location, + float level, + vector offset); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` +* `offset` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture3D` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture3D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture3D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTexture3D` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3D.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTexture3D.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct Texture3DMS` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `Texture3DMS.GetDimensions` + +## Signature + +``` +void Texture3DMS.GetDimensions( + out uint width, + out uint height, + out uint depth, + out uint sampleCount); +void Texture3DMS.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint depth, + out uint sampleCount, + out uint numberOfLevels); +void Texture3DMS.GetDimensions( + out float width, + out float height, + out float depth, + out float sampleCount); +void Texture3DMS.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float depth, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `depth` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `Texture3DMS.GetSamplePosition` + +## Signature + +``` +vector Texture3DMS.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `Texture3DMS.Load` + +## Signature + +``` +/// See Target Availability 1 +T Texture3DMS.Load( + vector location, + int sampleIndex); +T Texture3DMS.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T Texture3DMS.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `Texture3DMS.subscript` + +## Signature + +``` +T Texture3DMS.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct RWTexture3DMS` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RWTexture3DMS.GetDimensions` + +## Signature + +``` +void RWTexture3DMS.GetDimensions( + out uint width, + out uint height, + out uint depth, + out uint sampleCount); +void RWTexture3DMS.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint depth, + out uint sampleCount, + out uint numberOfLevels); +void RWTexture3DMS.GetDimensions( + out float width, + out float height, + out float depth, + out float sampleCount); +void RWTexture3DMS.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float depth, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `depth` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RWTexture3DMS.GetSamplePosition` + +## Signature + +``` +vector RWTexture3DMS.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `RWTexture3DMS.Load` + +## Signature + +``` +/// See Target Availability 1 +T RWTexture3DMS.Load( + vector location, + int sampleIndex); +T RWTexture3DMS.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T RWTexture3DMS.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RWTexture3DMS.subscript` + +## Signature + +``` +T RWTexture3DMS.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTexture3DMS` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3DMS.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTexture3DMS.GetDimensions( + out uint width, + out uint height, + out uint depth, + out uint sampleCount); +void RasterizerOrderedTexture3DMS.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint depth, + out uint sampleCount, + out uint numberOfLevels); +void RasterizerOrderedTexture3DMS.GetDimensions( + out float width, + out float height, + out float depth, + out float sampleCount); +void RasterizerOrderedTexture3DMS.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float depth, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `depth` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3DMS.GetSamplePosition` + +## Signature + +``` +vector RasterizerOrderedTexture3DMS.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3DMS.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTexture3DMS.Load( + vector location, + int sampleIndex); +T RasterizerOrderedTexture3DMS.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T RasterizerOrderedTexture3DMS.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTexture3DMS.subscript` + +## Signature + +``` +T RasterizerOrderedTexture3DMS.subscript(vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `location` + +-------------------------------------------------------------------------------- +# `struct TextureCube` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `TextureCube.CalculateLevelOfDetail` + +## Signature + +``` +float TextureCube.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `TextureCube.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float TextureCube.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `TextureCube.GetDimensions` + +## Signature + +``` +void TextureCube.GetDimensions( + out uint width, + out uint height); +void TextureCube.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint numberOfLevels); +void TextureCube.GetDimensions( + out float width, + out float height); +void TextureCube.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `TextureCube.Load` + +## Signature + +``` +/// See Target Availability 1 +T TextureCube.Load(vector location); +T TextureCube.Load( + vector location, + vector offset); +/// See Target Availability 2 +T TextureCube.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `TextureCube.Sample` + +## Signature + +``` +/// See Target Availability 1 +T TextureCube.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T TextureCube.Sample( + SamplerState s, + vector location, + float clamp); +T TextureCube.Sample( + SamplerState s, + vector location, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `TextureCube.SampleBias` + +## Signature + +``` +T TextureCube.SampleBias( + SamplerState s, + vector location, + float bias); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` + +-------------------------------------------------------------------------------- +# `TextureCube.SampleCmp` + +## Signature + +``` +float TextureCube.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` + +-------------------------------------------------------------------------------- +# `TextureCube.SampleCmpLevelZero` + +## Signature + +``` +float TextureCube.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` + +-------------------------------------------------------------------------------- +# `TextureCube.SampleGrad` + +## Signature + +``` +T TextureCube.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` + +-------------------------------------------------------------------------------- +# `TextureCube.SampleLevel` + +## Signature + +``` +T TextureCube.SampleLevel( + SamplerState s, + vector location, + float level); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` + +-------------------------------------------------------------------------------- +# `extension TextureCube` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `TextureCube.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.Gather( + SamplerState s, + vector location); +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherRed( + SamplerState s, + vector location); +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherGreen( + SamplerState s, + vector location); +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherBlue( + SamplerState s, + vector location); +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location); +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension TextureCube` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `TextureCube.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.Gather( + SamplerState s, + vector location); +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherRed( + SamplerState s, + vector location); +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherGreen( + SamplerState s, + vector location); +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherBlue( + SamplerState s, + vector location); +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location); +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension TextureCube` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `TextureCube.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.Gather( + SamplerState s, + vector location); +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherRed( + SamplerState s, + vector location); +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherGreen( + SamplerState s, + vector location); +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherBlue( + SamplerState s, + vector location); +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location); +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension TextureCube` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `TextureCube.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.Gather( + SamplerState s, + vector location); +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherRed( + SamplerState s, + vector location); +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherGreen( + SamplerState s, + vector location); +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherBlue( + SamplerState s, + vector location); +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCube.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location); +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTextureCube` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Load` +* `Sample` +* `SampleBias` +* `SampleCmp` +* `SampleCmpLevelZero` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.CalculateLevelOfDetail` + +## Signature + +``` +float RasterizerOrderedTextureCube.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float RasterizerOrderedTextureCube.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTextureCube.GetDimensions( + out uint width, + out uint height); +void RasterizerOrderedTextureCube.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint numberOfLevels); +void RasterizerOrderedTextureCube.GetDimensions( + out float width, + out float height); +void RasterizerOrderedTextureCube.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTextureCube.Load(vector location); +T RasterizerOrderedTextureCube.Load( + vector location, + vector offset); +/// See Target Availability 2 +T RasterizerOrderedTextureCube.Load( + vector location, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.Sample` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTextureCube.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T RasterizerOrderedTextureCube.Sample( + SamplerState s, + vector location, + float clamp); +T RasterizerOrderedTextureCube.Sample( + SamplerState s, + vector location, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.SampleBias` + +## Signature + +``` +T RasterizerOrderedTextureCube.SampleBias( + SamplerState s, + vector location, + float bias); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.SampleCmp` + +## Signature + +``` +float RasterizerOrderedTextureCube.SampleCmp( + SamplerComparisonState s, + vector location, + float compareValue); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.SampleCmpLevelZero` + +## Signature + +``` +float RasterizerOrderedTextureCube.SampleCmpLevelZero( + SamplerComparisonState s, + vector location, + float compareValue); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `compareValue` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.SampleGrad` + +## Signature + +``` +T RasterizerOrderedTextureCube.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.SampleLevel` + +## Signature + +``` +T RasterizerOrderedTextureCube.SampleLevel( + SamplerState s, + vector location, + float level); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTextureCube` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTextureCube` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTextureCube` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTextureCube` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCube.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCube.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct TextureCubeMS` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` + +-------------------------------------------------------------------------------- +# `TextureCubeMS.GetDimensions` + +## Signature + +``` +void TextureCubeMS.GetDimensions( + out uint width, + out uint height, + out uint sampleCount); +void TextureCubeMS.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint sampleCount, + out uint numberOfLevels); +void TextureCubeMS.GetDimensions( + out float width, + out float height, + out float sampleCount); +void TextureCubeMS.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `TextureCubeMS.GetSamplePosition` + +## Signature + +``` +vector TextureCubeMS.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `TextureCubeMS.Load` + +## Signature + +``` +/// See Target Availability 1 +T TextureCubeMS.Load( + vector location, + int sampleIndex); +T TextureCubeMS.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T TextureCubeMS.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTextureCubeMS` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` +* `Load` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeMS.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTextureCubeMS.GetDimensions( + out uint width, + out uint height, + out uint sampleCount); +void RasterizerOrderedTextureCubeMS.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint sampleCount, + out uint numberOfLevels); +void RasterizerOrderedTextureCubeMS.GetDimensions( + out float width, + out float height, + out float sampleCount); +void RasterizerOrderedTextureCubeMS.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeMS.GetSamplePosition` + +## Signature + +``` +vector RasterizerOrderedTextureCubeMS.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeMS.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTextureCubeMS.Load( + vector location, + int sampleIndex); +T RasterizerOrderedTextureCubeMS.Load( + vector location, + int sampleIndex, + vector offset); +/// See Target Availability 2 +T RasterizerOrderedTextureCubeMS.Load( + vector location, + int sampleIndex, + vector offset, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `sampleIndex` +* `offset` +* `status` + +-------------------------------------------------------------------------------- +# `struct TextureCubeArray` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Sample` +* `SampleBias` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.CalculateLevelOfDetail` + +## Signature + +``` +float TextureCubeArray.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float TextureCubeArray.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GetDimensions` + +## Signature + +``` +void TextureCubeArray.GetDimensions( + out uint width, + out uint height, + out uint elements); +void TextureCubeArray.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint elements, + out uint numberOfLevels); +void TextureCubeArray.GetDimensions( + out float width, + out float height, + out float elements); +void TextureCubeArray.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float elements, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `elements` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.Sample` + +## Signature + +``` +/// See Target Availability 1 +T TextureCubeArray.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T TextureCubeArray.Sample( + SamplerState s, + vector location, + float clamp); +T TextureCubeArray.Sample( + SamplerState s, + vector location, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.SampleBias` + +## Signature + +``` +T TextureCubeArray.SampleBias( + SamplerState s, + vector location, + float bias); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.SampleGrad` + +## Signature + +``` +T TextureCubeArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.SampleLevel` + +## Signature + +``` +T TextureCubeArray.SampleLevel( + SamplerState s, + vector location, + float level); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` + +-------------------------------------------------------------------------------- +# `extension TextureCubeArray` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.Gather( + SamplerState s, + vector location); +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location); +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location); +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location); +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location); +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension TextureCubeArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.Gather( + SamplerState s, + vector location); +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location); +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location); +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location); +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location); +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension TextureCubeArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.Gather( + SamplerState s, + vector location); +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location); +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location); +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location); +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location); +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension TextureCubeArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.Gather( + SamplerState s, + vector location); +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location); +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location); +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location); +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `TextureCubeArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location); +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector TextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTextureCubeArray` + +## Generic Parameters + +* `T` +## Methods + +* `CalculateLevelOfDetail` +* `CalculateLevelOfDetailUnclamped` +* `GetDimensions` +* `Sample` +* `SampleBias` +* `SampleGrad` +* `SampleLevel` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.CalculateLevelOfDetail` + +## Signature + +``` +float RasterizerOrderedTextureCubeArray.CalculateLevelOfDetail( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.CalculateLevelOfDetailUnclamped` + +## Signature + +``` +float RasterizerOrderedTextureCubeArray.CalculateLevelOfDetailUnclamped( + SamplerState s, + vector location); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` +* `location` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTextureCubeArray.GetDimensions( + out uint width, + out uint height, + out uint elements); +void RasterizerOrderedTextureCubeArray.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint elements, + out uint numberOfLevels); +void RasterizerOrderedTextureCubeArray.GetDimensions( + out float width, + out float height, + out float elements); +void RasterizerOrderedTextureCubeArray.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float elements, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `elements` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.Sample` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedTextureCubeArray.Sample( + SamplerState s, + vector location); +/// See Target Availability 2 +T RasterizerOrderedTextureCubeArray.Sample( + SamplerState s, + vector location, + float clamp); +T RasterizerOrderedTextureCubeArray.Sample( + SamplerState s, + vector location, + float clamp, + out uint status); +``` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `clamp` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.SampleBias` + +## Signature + +``` +T RasterizerOrderedTextureCubeArray.SampleBias( + SamplerState s, + vector location, + float bias); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `bias` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.SampleGrad` + +## Signature + +``` +T RasterizerOrderedTextureCubeArray.SampleGrad( + SamplerState s, + vector location, + vector gradX, + vector gradY); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `gradX` +* `gradY` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.SampleLevel` + +## Signature + +``` +T RasterizerOrderedTextureCubeArray.SampleLevel( + SamplerState s, + vector location, + float level); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `s` +* `location` +* `level` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTextureCubeArray` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTextureCubeArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTextureCubeArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `extension RasterizerOrderedTextureCubeArray` + +## Methods + +* `Gather` +* `GatherRed` +* `GatherGreen` +* `GatherBlue` +* `GatherAlpha` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.Gather` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.Gather( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherRed` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherRed( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherGreen` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherGreen( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherBlue` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherBlue( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeArray.GatherAlpha` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location); +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset, + out uint status); +/// See Target Availability 1 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4); +/// See Target Availability 2 +vector RasterizerOrderedTextureCubeArray.GatherAlpha( + SamplerState s, + vector location, + vector offset1, + vector offset2, + vector offset3, + vector offset4, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `s` +* `location` +* `offset` +* `status` +* `offset1` +* `offset2` +* `offset3` +* `offset4` + +-------------------------------------------------------------------------------- +# `struct TextureCubeMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` + +-------------------------------------------------------------------------------- +# `TextureCubeMSArray.GetDimensions` + +## Signature + +``` +void TextureCubeMSArray.GetDimensions( + out uint width, + out uint height, + out uint elements, + out uint sampleCount); +void TextureCubeMSArray.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint elements, + out uint sampleCount, + out uint numberOfLevels); +void TextureCubeMSArray.GetDimensions( + out float width, + out float height, + out float elements, + out float sampleCount); +void TextureCubeMSArray.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float elements, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `elements` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `TextureCubeMSArray.GetSamplePosition` + +## Signature + +``` +vector TextureCubeMSArray.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedTextureCubeMSArray` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `GetSamplePosition` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeMSArray.GetDimensions` + +## Signature + +``` +void RasterizerOrderedTextureCubeMSArray.GetDimensions( + out uint width, + out uint height, + out uint elements, + out uint sampleCount); +void RasterizerOrderedTextureCubeMSArray.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint elements, + out uint sampleCount, + out uint numberOfLevels); +void RasterizerOrderedTextureCubeMSArray.GetDimensions( + out float width, + out float height, + out float elements, + out float sampleCount); +void RasterizerOrderedTextureCubeMSArray.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float elements, + out float sampleCount, + out float numberOfLevels); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `width` +* `height` +* `elements` +* `sampleCount` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedTextureCubeMSArray.GetSamplePosition` + +## Signature + +``` +vector RasterizerOrderedTextureCubeMSArray.GetSamplePosition(int s); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `s` + +-------------------------------------------------------------------------------- +# `bit_cast` + +## Signature + +``` +T bit_cast(U value); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `T` +* `U` +* `value` + +-------------------------------------------------------------------------------- +# `getStringHash` + +## Description + +Given a string returns an integer hash of that string. + +## Signature + +``` +int getStringHash(String string); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `string` + +-------------------------------------------------------------------------------- +# `beginInvocationInterlock` + +## Description + +Mark beginning of "interlocked" operations in a fragment shader. + +## Signature + +``` +void beginInvocationInterlock(); +``` + +## Requirements + +`GLSL GL_ARB_fragment_shader_interlock`, `GLSL420` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `endInvocationInterlock` + +## Description + +Mark end of "interlocked" operations in a fragment shader. + +## Signature + +``` +void endInvocationInterlock(); +``` + +## Requirements + +`GLSL GL_ARB_fragment_shader_interlock`, `GLSL420` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# enum _AttributeTargets + +## Values + +* _Struct_ +* _Var_ +* _Function_ +-------------------------------------------------------------------------------- +# `struct AppendStructuredBuffer` + +## Generic Parameters + +* `T` +## Methods + +* `Append` +* `GetDimensions` + +-------------------------------------------------------------------------------- +# `AppendStructuredBuffer.Append` + +## Signature + +``` +void AppendStructuredBuffer.Append(T value); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `value` + +-------------------------------------------------------------------------------- +# `AppendStructuredBuffer.GetDimensions` + +## Signature + +``` +void AppendStructuredBuffer.GetDimensions( + out uint numStructs, + out uint stride); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `numStructs` +* `stride` + +-------------------------------------------------------------------------------- +# `struct ByteAddressBuffer` + +## Methods + +* `GetDimensions` +* `Load2` +* `Load3` +* `Load4` + +-------------------------------------------------------------------------------- +# `ByteAddressBuffer.GetDimensions` + +## Signature + +``` +void ByteAddressBuffer.GetDimensions(out uint dim); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dim` + +-------------------------------------------------------------------------------- +# `ByteAddressBuffer.Load2` + +## Signature + +``` +/// See Target Availability 1 +vector ByteAddressBuffer.Load2(int location); +/// See Target Availability 2 +vector ByteAddressBuffer.Load2( + int location, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `ByteAddressBuffer.Load3` + +## Signature + +``` +/// See Target Availability 1 +vector ByteAddressBuffer.Load3(int location); +/// See Target Availability 2 +vector ByteAddressBuffer.Load3( + int location, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `ByteAddressBuffer.Load4` + +## Signature + +``` +/// See Target Availability 1 +vector ByteAddressBuffer.Load4(int location); +/// See Target Availability 2 +vector ByteAddressBuffer.Load4( + int location, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `ByteAddressBuffer.Load` + +## Signature + +``` +/// See Target Availability 1 +uint ByteAddressBuffer.Load(int location); +/// See Target Availability 2 +uint ByteAddressBuffer.Load( + int location, + out uint status); +T ByteAddressBuffer.Load(int location); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `struct StructuredBuffer` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `StructuredBuffer.GetDimensions` + +## Signature + +``` +void StructuredBuffer.GetDimensions( + out uint numStructs, + out uint stride); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `numStructs` +* `stride` + +-------------------------------------------------------------------------------- +# `StructuredBuffer.Load` + +## Signature + +``` +/// See Target Availability 1 +T StructuredBuffer.Load(int location); +/// See Target Availability 2 +T StructuredBuffer.Load( + int location, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `StructuredBuffer.subscript` + +## Signature + +``` +T StructuredBuffer.subscript(uint index); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `index` + +-------------------------------------------------------------------------------- +# `struct ConsumeStructuredBuffer` + +## Generic Parameters + +* `T` +## Methods + +* `Consume` +* `GetDimensions` + +-------------------------------------------------------------------------------- +# `ConsumeStructuredBuffer.Consume` + +## Signature + +``` +T ConsumeStructuredBuffer.Consume(); +``` + +## Target Availability + +`HLSL` + + +-------------------------------------------------------------------------------- +# `ConsumeStructuredBuffer.GetDimensions` + +## Signature + +``` +void ConsumeStructuredBuffer.GetDimensions( + out uint numStructs, + out uint stride); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `numStructs` +* `stride` + +-------------------------------------------------------------------------------- +# `struct InputPatch` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `subscript` + +-------------------------------------------------------------------------------- +# `InputPatch.subscript` + +## Signature + +``` +T InputPatch.subscript(uint index); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `index` + +-------------------------------------------------------------------------------- +# `struct OutputPatch` + +## Generic Parameters + +* `T` +* `N` +## Methods + +* `subscript` + +-------------------------------------------------------------------------------- +# `OutputPatch.subscript` + +## Signature + +``` +T OutputPatch.subscript(uint index); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `index` + +-------------------------------------------------------------------------------- +# `struct RWByteAddressBuffer` + +## Methods + +* `GetDimensions` +* `Load2` +* `Load3` +* `Load4` +* `InterlockedAddF32` +* `InterlockedAddI64` +* `InterlockedCompareExchangeU64` +* `InterlockedMaxU64` +* `InterlockedMinU64` +* `InterlockedAndU64` +* `InterlockedOrU64` +* `InterlockedXorU64` +* `InterlockedExchangeU64` +* `InterlockedAdd` +* `InterlockedAnd` +* `InterlockedCompareExchange` +* `InterlockedCompareStore` +* `InterlockedExchange` +* `InterlockedMax` +* `InterlockedMin` +* `InterlockedOr` +* `InterlockedXor` +* `Store2` +* `Store3` +* `Store4` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.GetDimensions` + +## Signature + +``` +void RWByteAddressBuffer.GetDimensions(out uint dim); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dim` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.Load2` + +## Signature + +``` +/// See Target Availability 1 +vector RWByteAddressBuffer.Load2(int location); +/// See Target Availability 2 +vector RWByteAddressBuffer.Load2( + int location, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.Load3` + +## Signature + +``` +/// See Target Availability 1 +vector RWByteAddressBuffer.Load3(int location); +/// See Target Availability 2 +vector RWByteAddressBuffer.Load3( + int location, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.Load4` + +## Signature + +``` +/// See Target Availability 1 +vector RWByteAddressBuffer.Load4(int location); +/// See Target Availability 2 +vector RWByteAddressBuffer.Load4( + int location, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.Load` + +## Signature + +``` +/// See Target Availability 1 +uint RWByteAddressBuffer.Load(int location); +/// See Target Availability 2 +uint RWByteAddressBuffer.Load( + int location, + out uint status); +T RWByteAddressBuffer.Load(int location); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedAddF32` + +## Signature + +``` +void RWByteAddressBuffer.InterlockedAddF32( + uint byteAddress, + float valueToAdd, + out float originalValue); +void RWByteAddressBuffer.InterlockedAddF32( + uint byteAddress, + float valueToAdd); +``` + +## Requirements + +`CUDA SM 2.0`, `NVAPI` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `byteAddress` +* `valueToAdd` +* `originalValue` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedAddI64` + +## Signature + +``` +void RWByteAddressBuffer.InterlockedAddI64( + uint byteAddress, + int64_t valueToAdd, + out int64_t originalValue); +void RWByteAddressBuffer.InterlockedAddI64( + uint byteAddress, + int64_t valueToAdd); +``` + +## Requirements + +`CUDA SM 6.0` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `byteAddress` +* `valueToAdd` +* `originalValue` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedCompareExchangeU64` + +## Signature + +``` +void RWByteAddressBuffer.InterlockedCompareExchangeU64( + uint byteAddress, + uint64_t compareValue, + uint64_t value, + out uint64_t outOriginalValue); +``` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `byteAddress` +* `compareValue` +* `value` +* `outOriginalValue` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedMaxU64` + +## Signature + +``` +uint64_t RWByteAddressBuffer.InterlockedMaxU64( + uint byteAddress, + uint64_t value); +``` + +## Requirements + +`CUDA SM 3.5` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `byteAddress` +* `value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedMinU64` + +## Signature + +``` +uint64_t RWByteAddressBuffer.InterlockedMinU64( + uint byteAddress, + uint64_t value); +``` + +## Requirements + +`CUDA SM 3.5` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `byteAddress` +* `value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedAndU64` + +## Signature + +``` +uint64_t RWByteAddressBuffer.InterlockedAndU64( + uint byteAddress, + uint64_t value); +``` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `byteAddress` +* `value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedOrU64` + +## Signature + +``` +uint64_t RWByteAddressBuffer.InterlockedOrU64( + uint byteAddress, + uint64_t value); +``` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `byteAddress` +* `value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedXorU64` + +## Signature + +``` +uint64_t RWByteAddressBuffer.InterlockedXorU64( + uint byteAddress, + uint64_t value); +``` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `byteAddress` +* `value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedExchangeU64` + +## Signature + +``` +uint64_t RWByteAddressBuffer.InterlockedExchangeU64( + uint byteAddress, + uint64_t value); +``` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `byteAddress` +* `value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedAdd` + +## Signature + +``` +void RWByteAddressBuffer.InterlockedAdd( + uint dest, + uint value, + out uint original_value); +void RWByteAddressBuffer.InterlockedAdd( + uint dest, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedAnd` + +## Signature + +``` +void RWByteAddressBuffer.InterlockedAnd( + uint dest, + uint value, + out uint original_value); +void RWByteAddressBuffer.InterlockedAnd( + uint dest, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedCompareExchange` + +## Signature + +``` +void RWByteAddressBuffer.InterlockedCompareExchange( + uint dest, + uint compare_value, + uint value, + out uint original_value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `compare_value` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedCompareStore` + +## Signature + +``` +void RWByteAddressBuffer.InterlockedCompareStore( + uint dest, + uint compare_value, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `compare_value` +* `value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedExchange` + +## Signature + +``` +void RWByteAddressBuffer.InterlockedExchange( + uint dest, + uint value, + out uint original_value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedMax` + +## Signature + +``` +void RWByteAddressBuffer.InterlockedMax( + uint dest, + uint value, + out uint original_value); +void RWByteAddressBuffer.InterlockedMax( + uint dest, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedMin` + +## Signature + +``` +void RWByteAddressBuffer.InterlockedMin( + uint dest, + uint value, + out uint original_value); +void RWByteAddressBuffer.InterlockedMin( + uint dest, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedOr` + +## Signature + +``` +void RWByteAddressBuffer.InterlockedOr( + uint dest, + uint value, + out uint original_value); +void RWByteAddressBuffer.InterlockedOr( + uint dest, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.InterlockedXor` + +## Signature + +``` +void RWByteAddressBuffer.InterlockedXor( + uint dest, + uint value, + out uint original_value); +void RWByteAddressBuffer.InterlockedXor( + uint dest, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.Store2` + +## Signature + +``` +void RWByteAddressBuffer.Store2( + uint address, + vector value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `address` +* `value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.Store3` + +## Signature + +``` +void RWByteAddressBuffer.Store3( + uint address, + vector value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `address` +* `value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.Store4` + +## Signature + +``` +void RWByteAddressBuffer.Store4( + uint address, + vector value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `address` +* `value` + +-------------------------------------------------------------------------------- +# `RWByteAddressBuffer.Store` + +## Signature + +``` +/// See Target Availability 1 +void RWByteAddressBuffer.Store( + uint address, + uint value); +/// See Target Availability 2 +void RWByteAddressBuffer.Store( + int offset, + T value); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `address` +* `value` +* `offset` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedByteAddressBuffer` + +## Methods + +* `GetDimensions` +* `Load2` +* `Load3` +* `Load4` +* `InterlockedAdd` +* `InterlockedAnd` +* `InterlockedCompareExchange` +* `InterlockedCompareStore` +* `InterlockedExchange` +* `InterlockedMax` +* `InterlockedMin` +* `InterlockedOr` +* `InterlockedXor` +* `Store2` +* `Store3` +* `Store4` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.GetDimensions` + +## Signature + +``` +void RasterizerOrderedByteAddressBuffer.GetDimensions(out uint dim); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dim` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.Load2` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedByteAddressBuffer.Load2(int location); +/// See Target Availability 2 +vector RasterizerOrderedByteAddressBuffer.Load2( + int location, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.Load3` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedByteAddressBuffer.Load3(int location); +/// See Target Availability 2 +vector RasterizerOrderedByteAddressBuffer.Load3( + int location, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.Load4` + +## Signature + +``` +/// See Target Availability 1 +vector RasterizerOrderedByteAddressBuffer.Load4(int location); +/// See Target Availability 2 +vector RasterizerOrderedByteAddressBuffer.Load4( + int location, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.Load` + +## Signature + +``` +/// See Target Availability 1 +uint RasterizerOrderedByteAddressBuffer.Load(int location); +/// See Target Availability 2 +uint RasterizerOrderedByteAddressBuffer.Load( + int location, + out uint status); +T RasterizerOrderedByteAddressBuffer.Load(int location); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.InterlockedAdd` + +## Signature + +``` +void RasterizerOrderedByteAddressBuffer.InterlockedAdd( + uint dest, + uint value, + out uint original_value); +void RasterizerOrderedByteAddressBuffer.InterlockedAdd( + uint dest, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.InterlockedAnd` + +## Signature + +``` +void RasterizerOrderedByteAddressBuffer.InterlockedAnd( + uint dest, + uint value, + out uint original_value); +void RasterizerOrderedByteAddressBuffer.InterlockedAnd( + uint dest, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.InterlockedCompareExchange` + +## Signature + +``` +void RasterizerOrderedByteAddressBuffer.InterlockedCompareExchange( + uint dest, + uint compare_value, + uint value, + out uint original_value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `compare_value` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.InterlockedCompareStore` + +## Signature + +``` +void RasterizerOrderedByteAddressBuffer.InterlockedCompareStore( + uint dest, + uint compare_value, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `compare_value` +* `value` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.InterlockedExchange` + +## Signature + +``` +void RasterizerOrderedByteAddressBuffer.InterlockedExchange( + uint dest, + uint value, + out uint original_value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.InterlockedMax` + +## Signature + +``` +void RasterizerOrderedByteAddressBuffer.InterlockedMax( + uint dest, + uint value, + out uint original_value); +void RasterizerOrderedByteAddressBuffer.InterlockedMax( + uint dest, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.InterlockedMin` + +## Signature + +``` +void RasterizerOrderedByteAddressBuffer.InterlockedMin( + uint dest, + uint value, + out uint original_value); +void RasterizerOrderedByteAddressBuffer.InterlockedMin( + uint dest, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.InterlockedOr` + +## Signature + +``` +void RasterizerOrderedByteAddressBuffer.InterlockedOr( + uint dest, + uint value, + out uint original_value); +void RasterizerOrderedByteAddressBuffer.InterlockedOr( + uint dest, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.InterlockedXor` + +## Signature + +``` +void RasterizerOrderedByteAddressBuffer.InterlockedXor( + uint dest, + uint value, + out uint original_value); +void RasterizerOrderedByteAddressBuffer.InterlockedXor( + uint dest, + uint value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.Store2` + +## Signature + +``` +void RasterizerOrderedByteAddressBuffer.Store2( + uint address, + vector value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `address` +* `value` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.Store3` + +## Signature + +``` +void RasterizerOrderedByteAddressBuffer.Store3( + uint address, + vector value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `address` +* `value` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.Store4` + +## Signature + +``` +void RasterizerOrderedByteAddressBuffer.Store4( + uint address, + vector value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `address` +* `value` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedByteAddressBuffer.Store` + +## Signature + +``` +/// See Target Availability 1 +void RasterizerOrderedByteAddressBuffer.Store( + uint address, + uint value); +/// See Target Availability 2 +void RasterizerOrderedByteAddressBuffer.Store( + int offset, + T value); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `address` +* `value` +* `offset` + +-------------------------------------------------------------------------------- +# `struct RWStructuredBuffer` + +## Generic Parameters + +* `T` +## Methods + +* `DecrementCounter` +* `GetDimensions` +* `IncrementCounter` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RWStructuredBuffer.DecrementCounter` + +## Signature + +``` +uint RWStructuredBuffer.DecrementCounter(); +``` + +## Target Availability + +`HLSL` + + +-------------------------------------------------------------------------------- +# `RWStructuredBuffer.GetDimensions` + +## Signature + +``` +void RWStructuredBuffer.GetDimensions( + out uint numStructs, + out uint stride); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `numStructs` +* `stride` + +-------------------------------------------------------------------------------- +# `RWStructuredBuffer.IncrementCounter` + +## Signature + +``` +uint RWStructuredBuffer.IncrementCounter(); +``` + +## Target Availability + +`HLSL` + + +-------------------------------------------------------------------------------- +# `RWStructuredBuffer.Load` + +## Signature + +``` +/// See Target Availability 1 +T RWStructuredBuffer.Load(int location); +/// See Target Availability 2 +T RWStructuredBuffer.Load( + int location, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `RWStructuredBuffer.subscript` + +## Signature + +``` +T RWStructuredBuffer.subscript(uint index); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `index` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedStructuredBuffer` + +## Generic Parameters + +* `T` +## Methods + +* `DecrementCounter` +* `GetDimensions` +* `IncrementCounter` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedStructuredBuffer.DecrementCounter` + +## Signature + +``` +uint RasterizerOrderedStructuredBuffer.DecrementCounter(); +``` + +## Target Availability + +`HLSL` + + +-------------------------------------------------------------------------------- +# `RasterizerOrderedStructuredBuffer.GetDimensions` + +## Signature + +``` +void RasterizerOrderedStructuredBuffer.GetDimensions( + out uint numStructs, + out uint stride); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `numStructs` +* `stride` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedStructuredBuffer.IncrementCounter` + +## Signature + +``` +uint RasterizerOrderedStructuredBuffer.IncrementCounter(); +``` + +## Target Availability + +`HLSL` + + +-------------------------------------------------------------------------------- +# `RasterizerOrderedStructuredBuffer.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedStructuredBuffer.Load(int location); +/// See Target Availability 2 +T RasterizerOrderedStructuredBuffer.Load( + int location, + out uint status); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedStructuredBuffer.subscript` + +## Signature + +``` +T RasterizerOrderedStructuredBuffer.subscript(uint index); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `index` + +-------------------------------------------------------------------------------- +# `struct PointStream` + +## Generic Parameters + +* `T` +## Methods + +* `Append` +* `RestartStrip` + +-------------------------------------------------------------------------------- +# `PointStream.Append` + +## Signature + +``` +void PointStream.Append(T value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `value` + +-------------------------------------------------------------------------------- +# `PointStream.RestartStrip` + +## Signature + +``` +void PointStream.RestartStrip(); +``` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `struct LineStream` + +## Generic Parameters + +* `T` +## Methods + +* `Append` +* `RestartStrip` + +-------------------------------------------------------------------------------- +# `LineStream.Append` + +## Signature + +``` +void LineStream.Append(T value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `value` + +-------------------------------------------------------------------------------- +# `LineStream.RestartStrip` + +## Signature + +``` +void LineStream.RestartStrip(); +``` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `struct TriangleStream` + +## Generic Parameters + +* `T` +## Methods + +* `Append` +* `RestartStrip` + +-------------------------------------------------------------------------------- +# `TriangleStream.Append` + +## Signature + +``` +void TriangleStream.Append(T value); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `value` + +-------------------------------------------------------------------------------- +# `TriangleStream.RestartStrip` + +## Signature + +``` +void TriangleStream.RestartStrip(); +``` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `abort` + +## Signature + +``` +void abort(); +``` + +## Target Availability + +`HLSL` + + +-------------------------------------------------------------------------------- +# `abs` + +## Signature + +``` +/// See Target Availability 1 +T abs(T x); +/// See Target Availability 2 +vector abs(vector x); +/// See Target Availability 3 +matrix abs(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `acos` + +## Signature + +``` +/// See Target Availability 1 +T acos(T x); +/// See Target Availability 2 +vector acos(vector x); +/// See Target Availability 3 +matrix acos(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `all` + +## Signature + +``` +/// See Target Availability 1 +bool all(T x); +bool all(vector x); +/// See Target Availability 2 +bool all(matrix x); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `AllMemoryBarrier` + +## Signature + +``` +void AllMemoryBarrier(); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `AllMemoryBarrierWithGroupSync` + +## Signature + +``` +void AllMemoryBarrierWithGroupSync(); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `any` + +## Signature + +``` +/// See Target Availability 1 +bool any(T x); +bool any(vector x); +/// See Target Availability 2 +bool any(matrix x); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `asdouble` + +## Signature + +``` +double asdouble( + uint lowbits, + uint highbits); +``` + +## Requirements + +`GLSL GL_ARB_gpu_shader5` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `lowbits` +* `highbits` + +-------------------------------------------------------------------------------- +# `asfloat` + +## Signature + +``` +/// See Target Availability 1 +float asfloat(int x); +float asfloat(uint x); +vector asfloat(vector x); +vector asfloat(vector x); +/// See Target Availability 2 +matrix asfloat(matrix x); +matrix asfloat(matrix x); +float asfloat(float x); +vector asfloat(vector x); +matrix asfloat(matrix x); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `asin` + +## Signature + +``` +/// See Target Availability 1 +T asin(T x); +/// See Target Availability 2 +vector asin(vector x); +/// See Target Availability 3 +matrix asin(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `asint` + +## Signature + +``` +/// See Target Availability 1 +int asint(float x); +int asint(uint x); +vector asint(vector x); +vector asint(vector x); +/// See Target Availability 2 +matrix asint(matrix x); +matrix asint(matrix x); +int asint(int x); +vector asint(vector x); +matrix asint(matrix x); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `asuint` + +## Signature + +``` +/// See Target Availability 1 +void asuint( + double value, + out uint lowbits, + out uint highbits); +uint asuint(float x); +uint asuint(int x); +vector asuint(vector x); +vector asuint(vector x); +/// See Target Availability 2 +matrix asuint(matrix x); +matrix asuint(matrix x); +uint asuint(uint x); +vector asuint(vector x); +matrix asuint(matrix x); +``` + +## Requirements + +`GLSL GL_ARB_gpu_shader5` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `N` +* `M` +* `value` +* `lowbits` +* `highbits` +* `x` + +-------------------------------------------------------------------------------- +# `asuint16` + +## Signature + +``` +/// See Target Availability 1 +uint16_t asuint16(uint16_t value); +vector asuint16(vector value); +matrix asuint16(matrix value); +uint16_t asuint16(int16_t value); +vector asuint16(vector value); +matrix asuint16(matrix value); +/// See Target Availability 2 +uint16_t asuint16(half value); +/// See Target Availability 1 +vector asuint16(vector value); +matrix asuint16(matrix value); +``` + +## Target Availability + +1. `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `N` +* `R` +* `C` +* `value` + +-------------------------------------------------------------------------------- +# `asint16` + +## Signature + +``` +int16_t asint16(int16_t value); +vector asint16(vector value); +matrix asint16(matrix value); +int16_t asint16(uint16_t value); +vector asint16(vector value); +matrix asint16(matrix value); +int16_t asint16(half value); +vector asint16(vector value); +matrix asint16(matrix value); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `N` +* `R` +* `C` +* `value` + +-------------------------------------------------------------------------------- +# `asfloat16` + +## Signature + +``` +/// See Target Availability 1 +half asfloat16(half value); +vector asfloat16(vector value); +matrix asfloat16(matrix value); +/// See Target Availability 2 +half asfloat16(uint16_t value); +/// See Target Availability 1 +vector asfloat16(vector value); +matrix asfloat16(matrix value); +half asfloat16(int16_t value); +vector asfloat16(vector value); +matrix asfloat16(matrix value); +``` + +## Target Availability + +1. `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `N` +* `R` +* `C` +* `value` + +-------------------------------------------------------------------------------- +# `atan` + +## Signature + +``` +/// See Target Availability 1 +T atan(T x); +/// See Target Availability 2 +vector atan(vector x); +/// See Target Availability 3 +matrix atan(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `atan2` + +## Signature + +``` +/// See Target Availability 1 +T atan2( + T y, + T x); +/// See Target Availability 2 +vector atan2( + vector y, + vector x); +/// See Target Availability 3 +matrix atan2( + matrix y, + matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `y` +* `x` + +-------------------------------------------------------------------------------- +# `ceil` + +## Signature + +``` +/// See Target Availability 1 +T ceil(T x); +/// See Target Availability 2 +vector ceil(vector x); +/// See Target Availability 3 +matrix ceil(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `CheckAccessFullyMapped` + +## Signature + +``` +bool CheckAccessFullyMapped(uint status); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `status` + +-------------------------------------------------------------------------------- +# `clamp` + +## Signature + +``` +/// See Target Availability 1 +T clamp( + T x, + T minBound, + T maxBound); +vector clamp( + vector x, + vector minBound, + vector maxBound); +/// See Target Availability 2 +matrix clamp( + matrix x, + matrix minBound, + matrix maxBound); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` +* `minBound` +* `maxBound` + +-------------------------------------------------------------------------------- +# `clip` + +## Signature + +``` +void clip(T x); +void clip(vector x); +void clip(matrix x); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `cos` + +## Signature + +``` +/// See Target Availability 1 +T cos(T x); +/// See Target Availability 2 +vector cos(vector x); +/// See Target Availability 3 +matrix cos(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `cosh` + +## Signature + +``` +/// See Target Availability 1 +T cosh(T x); +/// See Target Availability 2 +vector cosh(vector x); +/// See Target Availability 3 +matrix cosh(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `countbits` + +## Signature + +``` +uint countbits(uint value); +``` + +## Target Availability + +`CPP`, `CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `value` + +-------------------------------------------------------------------------------- +# `cross` + +## Signature + +``` +vector cross( + vector left, + vector right); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `left` +* `right` + +-------------------------------------------------------------------------------- +# `D3DCOLORtoUBYTE4` + +## Signature + +``` +vector D3DCOLORtoUBYTE4(vector color); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `color` + +-------------------------------------------------------------------------------- +# `ddx` + +## Signature + +``` +/// See Target Availability 1 +T ddx(T x); +vector ddx(vector x); +/// See Target Availability 2 +matrix ddx(matrix x); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `ddx_coarse` + +## Signature + +``` +/// See Target Availability 1 +T ddx_coarse(T x); +vector ddx_coarse(vector x); +/// See Target Availability 2 +matrix ddx_coarse(matrix x); +``` + +## Requirements + +`GLSL GL_ARB_derivative_control` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `ddx_fine` + +## Signature + +``` +/// See Target Availability 1 +T ddx_fine(T x); +vector ddx_fine(vector x); +/// See Target Availability 2 +matrix ddx_fine(matrix x); +``` + +## Requirements + +`GLSL GL_ARB_derivative_control` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `ddy` + +## Signature + +``` +/// See Target Availability 1 +T ddy(T x); +vector ddy(vector x); +/// See Target Availability 2 +matrix ddy(matrix x); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `ddy_coarse` + +## Signature + +``` +/// See Target Availability 1 +T ddy_coarse(T x); +vector ddy_coarse(vector x); +/// See Target Availability 2 +matrix ddy_coarse(matrix x); +``` + +## Requirements + +`GLSL GL_ARB_derivative_control` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `ddy_fine` + +## Signature + +``` +/// See Target Availability 1 +T ddy_fine(T x); +vector ddy_fine(vector x); +/// See Target Availability 2 +matrix ddy_fine(matrix x); +``` + +## Requirements + +`GLSL GL_ARB_derivative_control` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `degrees` + +## Signature + +``` +/// See Target Availability 1 +T degrees(T x); +vector degrees(vector x); +/// See Target Availability 2 +matrix degrees(matrix x); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `determinant` + +## Signature + +``` +T determinant(matrix m); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `T` +* `N` +* `m` + +-------------------------------------------------------------------------------- +# `DeviceMemoryBarrier` + +## Signature + +``` +void DeviceMemoryBarrier(); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `DeviceMemoryBarrierWithGroupSync` + +## Signature + +``` +void DeviceMemoryBarrierWithGroupSync(); +``` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `distance` + +## Signature + +``` +T distance( + vector x, + vector y); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `x` +* `y` + +-------------------------------------------------------------------------------- +# `dot` + +## Signature + +``` +T dot( + vector x, + vector y); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `x` +* `y` + +-------------------------------------------------------------------------------- +# `dst` + +## Signature + +``` +vector dst( + vector x, + vector y); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `T` +* `x` +* `y` + +-------------------------------------------------------------------------------- +# `EvaluateAttributeAtCentroid` + +## Signature + +``` +T EvaluateAttributeAtCentroid(T x); +vector EvaluateAttributeAtCentroid(vector x); +matrix EvaluateAttributeAtCentroid(matrix x); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `EvaluateAttributeAtSample` + +## Signature + +``` +T EvaluateAttributeAtSample( + T x, + uint sampleindex); +vector EvaluateAttributeAtSample( + vector x, + uint sampleindex); +matrix EvaluateAttributeAtSample( + matrix x, + uint sampleindex); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` +* `sampleindex` + +-------------------------------------------------------------------------------- +# `EvaluateAttributeSnapped` + +## Signature + +``` +T EvaluateAttributeSnapped( + T x, + vector offset); +vector EvaluateAttributeSnapped( + vector x, + vector offset); +matrix EvaluateAttributeSnapped( + matrix x, + vector offset); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` +* `offset` + +-------------------------------------------------------------------------------- +# `exp` + +## Signature + +``` +/// See Target Availability 1 +T exp(T x); +/// See Target Availability 2 +vector exp(vector x); +/// See Target Availability 3 +matrix exp(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `exp2` + +## Signature + +``` +/// See Target Availability 1 +T exp2(T x); +/// See Target Availability 2 +vector exp2(vector x); +/// See Target Availability 3 +matrix exp2(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `f16tof32` + +## Signature + +``` +/// See Target Availability 1 +float f16tof32(uint value); +/// See Target Availability 2 +vector f16tof32(vector value); +``` + +## Requirements + +`GLSL420` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `N` +* `value` + +-------------------------------------------------------------------------------- +# `f32tof16` + +## Signature + +``` +/// See Target Availability 1 +uint f32tof16(float value); +/// See Target Availability 2 +vector f32tof16(vector value); +``` + +## Requirements + +`GLSL420` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `N` +* `value` + +-------------------------------------------------------------------------------- +# `faceforward` + +## Signature + +``` +vector faceforward( + vector n, + vector i, + vector ng); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `n` +* `i` +* `ng` + +-------------------------------------------------------------------------------- +# `firstbithigh` + +## Signature + +``` +/// See Target Availability 1 +int firstbithigh(int value); +/// See Target Availability 2 +vector firstbithigh(vector value); +/// See Target Availability 1 +uint firstbithigh(uint value); +/// See Target Availability 2 +vector firstbithigh(vector value); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `N` +* `value` + +-------------------------------------------------------------------------------- +# `firstbitlow` + +## Signature + +``` +/// See Target Availability 1 +int firstbitlow(int value); +/// See Target Availability 2 +vector firstbitlow(vector value); +/// See Target Availability 1 +uint firstbitlow(uint value); +/// See Target Availability 2 +vector firstbitlow(vector value); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `N` +* `value` + +-------------------------------------------------------------------------------- +# `floor` + +## Signature + +``` +/// See Target Availability 1 +T floor(T x); +/// See Target Availability 2 +vector floor(vector x); +/// See Target Availability 3 +matrix floor(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `fma` + +## Signature + +``` +/// See Target Availability 1 +double fma( + double a, + double b, + double c); +/// See Target Availability 2 +vector fma( + vector a, + vector b, + vector c); +/// See Target Availability 3 +matrix fma( + matrix a, + matrix b, + matrix c); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `N` +* `M` +* `a` +* `b` +* `c` + +-------------------------------------------------------------------------------- +# `fmod` + +## Signature + +``` +/// See Target Availability 1 +T fmod( + T x, + T y); +/// See Target Availability 2 +vector fmod( + vector x, + vector y); +matrix fmod( + matrix x, + matrix y); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` +* `y` + +-------------------------------------------------------------------------------- +# `frac` + +## Signature + +``` +/// See Target Availability 1 +T frac(T x); +/// See Target Availability 2 +vector frac(vector x); +/// See Target Availability 3 +matrix frac(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `frexp` + +## Signature + +``` +/// See Target Availability 1 +T frexp( + T x, + out T exp); +vector frexp( + vector x, + out vector exp); +/// See Target Availability 2 +matrix frexp( + matrix x, + out matrix exp); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` +* `exp` + +-------------------------------------------------------------------------------- +# `fwidth` + +## Signature + +``` +/// See Target Availability 1 +T fwidth(T x); +/// See Target Availability 2 +vector fwidth(vector x); +/// See Target Availability 1 +matrix fwidth(matrix x); +``` + +## Target Availability + +1. `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `GetAttributeAtVertex` + +## Description + + Get the value of a vertex attribute at a specific vertex. + + The `GetAttributeAtVertex()` function can be used in a fragment shader + to get the value of the given `attribute` at the vertex of the primitive + that corresponds to the given `vertexIndex`. + + Note that the `attribute` must have been a declared varying input to + the fragment shader with the `nointerpolation` modifier. + + This function can be applied to scalars, vectors, and matrices of + built-in scalar types. + + Note: these functions are not curently implemented for Vulkan/SPIR-V output. + +## Signature + +``` +T GetAttributeAtVertex( + T attribute, + uint vertexIndex); +vector GetAttributeAtVertex( + vector attribute, + uint vertexIndex); +matrix GetAttributeAtVertex( + matrix attribute, + uint vertexIndex); +``` + +## Requirements + +`GLSL GL_NV_fragment_shader_barycentric`, `GLSL450` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `attribute` +* `vertexIndex` + +-------------------------------------------------------------------------------- +# `GetRenderTargetSampleCount` + +## Signature + +``` +uint GetRenderTargetSampleCount(); +``` + +## Target Availability + +`HLSL` + + +-------------------------------------------------------------------------------- +# `GetRenderTargetSamplePosition` + +## Signature + +``` +vector GetRenderTargetSamplePosition(int Index); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `Index` + +-------------------------------------------------------------------------------- +# `GroupMemoryBarrier` + +## Signature + +``` +void GroupMemoryBarrier(); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `GroupMemoryBarrierWithGroupSync` + +## Signature + +``` +void GroupMemoryBarrierWithGroupSync(); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `InterlockedAdd` + +## Signature + +``` +void InterlockedAdd( + int dest, + int value); +void InterlockedAdd( + uint dest, + uint value); +void InterlockedAdd( + int dest, + int value, + out int original_value); +void InterlockedAdd( + uint dest, + uint value, + out uint original_value); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `InterlockedAnd` + +## Signature + +``` +void InterlockedAnd( + int dest, + int value); +void InterlockedAnd( + uint dest, + uint value); +void InterlockedAnd( + int dest, + int value, + out int original_value); +void InterlockedAnd( + uint dest, + uint value, + out uint original_value); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `InterlockedCompareExchange` + +## Signature + +``` +void InterlockedCompareExchange( + int dest, + int compare_value, + int value, + out int original_value); +void InterlockedCompareExchange( + uint dest, + uint compare_value, + uint value, + out uint original_value); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `dest` +* `compare_value` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `InterlockedCompareStore` + +## Signature + +``` +void InterlockedCompareStore( + int dest, + int compare_value, + int value); +void InterlockedCompareStore( + uint dest, + uint compare_value, + uint value); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `dest` +* `compare_value` +* `value` + +-------------------------------------------------------------------------------- +# `InterlockedExchange` + +## Signature + +``` +void InterlockedExchange( + int dest, + int value, + out int original_value); +void InterlockedExchange( + uint dest, + uint value, + out uint original_value); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `InterlockedMax` + +## Signature + +``` +void InterlockedMax( + int dest, + int value); +void InterlockedMax( + uint dest, + uint value); +void InterlockedMax( + int dest, + int value, + out int original_value); +void InterlockedMax( + uint dest, + uint value, + out uint original_value); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `InterlockedMin` + +## Signature + +``` +void InterlockedMin( + int dest, + int value); +void InterlockedMin( + uint dest, + uint value); +void InterlockedMin( + int dest, + int value, + out int original_value); +void InterlockedMin( + uint dest, + uint value, + out uint original_value); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `InterlockedOr` + +## Signature + +``` +void InterlockedOr( + int dest, + int value); +void InterlockedOr( + uint dest, + uint value); +void InterlockedOr( + int dest, + int value, + out int original_value); +void InterlockedOr( + uint dest, + uint value, + out uint original_value); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `InterlockedXor` + +## Signature + +``` +void InterlockedXor( + int dest, + int value); +void InterlockedXor( + uint dest, + uint value); +void InterlockedXor( + int dest, + int value, + out int original_value); +void InterlockedXor( + uint dest, + uint value, + out uint original_value); +``` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `dest` +* `value` +* `original_value` + +-------------------------------------------------------------------------------- +# `isfinite` + +## Signature + +``` +/// See Target Availability 1 +bool isfinite(T x); +/// See Target Availability 2 +vector isfinite(vector x); +matrix isfinite(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `isinf` + +## Signature + +``` +/// See Target Availability 1 +bool isinf(T x); +/// See Target Availability 2 +vector isinf(vector x); +/// See Target Availability 3 +matrix isinf(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `isnan` + +## Signature + +``` +/// See Target Availability 1 +bool isnan(T x); +/// See Target Availability 2 +vector isnan(vector x); +/// See Target Availability 3 +matrix isnan(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `ldexp` + +## Signature + +``` +T ldexp( + T x, + T exp); +vector ldexp( + vector x, + vector exp); +matrix ldexp( + matrix x, + matrix exp); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` +* `exp` + +-------------------------------------------------------------------------------- +# `length` + +## Signature + +``` +T length(vector x); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `x` + +-------------------------------------------------------------------------------- +# `lerp` + +## Signature + +``` +/// See Target Availability 1 +T lerp( + T x, + T y, + T s); +vector lerp( + vector x, + vector y, + vector s); +/// See Target Availability 2 +matrix lerp( + matrix x, + matrix y, + matrix s); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` +* `y` +* `s` + +-------------------------------------------------------------------------------- +# `lit` + +## Signature + +``` +vector lit( + float n_dot_l, + float n_dot_h, + float m); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `n_dot_l` +* `n_dot_h` +* `m` + +-------------------------------------------------------------------------------- +# `log` + +## Signature + +``` +/// See Target Availability 1 +T log(T x); +/// See Target Availability 2 +vector log(vector x); +/// See Target Availability 3 +matrix log(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `log10` + +## Signature + +``` +/// See Target Availability 1 +T log10(T x); +/// See Target Availability 2 +vector log10(vector x); +/// See Target Availability 3 +matrix log10(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `log2` + +## Signature + +``` +/// See Target Availability 1 +T log2(T x); +/// See Target Availability 2 +vector log2(vector x); +/// See Target Availability 3 +matrix log2(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `mad` + +## Signature + +``` +/// See Target Availability 1 +T mad( + T mvalue, + T avalue, + T bvalue); +/// See Target Availability 2 +vector mad( + vector mvalue, + vector avalue, + vector bvalue); +/// See Target Availability 3 +matrix mad( + matrix mvalue, + matrix avalue, + matrix bvalue); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mvalue` +* `avalue` +* `bvalue` + +-------------------------------------------------------------------------------- +# `max` + +## Signature + +``` +/// See Target Availability 1 +T max( + T x, + T y); +/// See Target Availability 2 +vector max( + vector x, + vector y); +/// See Target Availability 3 +matrix max( + matrix x, + matrix y); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` +* `y` + +-------------------------------------------------------------------------------- +# `min` + +## Signature + +``` +/// See Target Availability 1 +T min( + T x, + T y); +/// See Target Availability 2 +vector min( + vector x, + vector y); +/// See Target Availability 3 +matrix min( + matrix x, + matrix y); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` +* `y` + +-------------------------------------------------------------------------------- +# `modf` + +## Signature + +``` +/// See Target Availability 1 +T modf( + T x, + out T ip); +/// See Target Availability 2 +vector modf( + vector x, + out vector ip); +/// See Target Availability 1 +matrix modf( + matrix x, + out matrix ip); +``` + +## Target Availability + +1. `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` +* `ip` + +-------------------------------------------------------------------------------- +# `msad4` + +## Signature + +``` +vector msad4( + uint reference, + vector source, + vector accum); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `reference` +* `source` +* `accum` + +-------------------------------------------------------------------------------- +# `mul` + +## Signature + +``` +/// See Target Availability 1 +T mul( + T x, + T y); +vector mul( + vector x, + T y); +vector mul( + T x, + vector y); +matrix mul( + matrix x, + T y); +matrix mul( + T x, + matrix y); +/// See Target Availability 2 +T mul( + vector x, + vector y); +vector mul( + vector left, + matrix right); +vector mul( + matrix left, + vector right); +matrix mul( + matrix right, + matrix left); +``` + +## Target Availability + +1. `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `R` +* `C` +* `x` +* `y` +* `left` +* `right` + +-------------------------------------------------------------------------------- +# `noise` + +## Signature + +``` +float noise(float x); +float noise(vector x); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `N` +* `x` + +-------------------------------------------------------------------------------- +# `NonUniformResourceIndex` + +## Signature + +``` +uint NonUniformResourceIndex(uint index); +int NonUniformResourceIndex(int index); +``` + +## Requirements + +`GLSL GL_EXT_nonuniform_qualifier` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `index` + +-------------------------------------------------------------------------------- +# `normalize` + +## Signature + +``` +vector normalize(vector x); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `x` + +-------------------------------------------------------------------------------- +# `pow` + +## Signature + +``` +/// See Target Availability 1 +T pow( + T x, + T y); +/// See Target Availability 2 +vector pow( + vector x, + vector y); +/// See Target Availability 3 +matrix pow( + matrix x, + matrix y); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` +* `y` + +-------------------------------------------------------------------------------- +# `Process2DQuadTessFactorsAvg` + +## Signature + +``` +void Process2DQuadTessFactorsAvg( + in vector RawEdgeFactors, + in vector InsideScale, + out vector RoundedEdgeTessFactors, + out vector RoundedInsideTessFactors, + out vector UnroundedInsideTessFactors); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `RawEdgeFactors` +* `InsideScale` +* `RoundedEdgeTessFactors` +* `RoundedInsideTessFactors` +* `UnroundedInsideTessFactors` + +-------------------------------------------------------------------------------- +# `Process2DQuadTessFactorsMax` + +## Signature + +``` +void Process2DQuadTessFactorsMax( + in vector RawEdgeFactors, + in vector InsideScale, + out vector RoundedEdgeTessFactors, + out vector RoundedInsideTessFactors, + out vector UnroundedInsideTessFactors); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `RawEdgeFactors` +* `InsideScale` +* `RoundedEdgeTessFactors` +* `RoundedInsideTessFactors` +* `UnroundedInsideTessFactors` + +-------------------------------------------------------------------------------- +# `Process2DQuadTessFactorsMin` + +## Signature + +``` +void Process2DQuadTessFactorsMin( + in vector RawEdgeFactors, + in vector InsideScale, + out vector RoundedEdgeTessFactors, + out vector RoundedInsideTessFactors, + out vector UnroundedInsideTessFactors); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `RawEdgeFactors` +* `InsideScale` +* `RoundedEdgeTessFactors` +* `RoundedInsideTessFactors` +* `UnroundedInsideTessFactors` + +-------------------------------------------------------------------------------- +# `ProcessIsolineTessFactors` + +## Signature + +``` +void ProcessIsolineTessFactors( + in float RawDetailFactor, + in float RawDensityFactor, + out float RoundedDetailFactor, + out float RoundedDensityFactor); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `RawDetailFactor` +* `RawDensityFactor` +* `RoundedDetailFactor` +* `RoundedDensityFactor` + +-------------------------------------------------------------------------------- +# `ProcessQuadTessFactorsAvg` + +## Signature + +``` +void ProcessQuadTessFactorsAvg( + in vector RawEdgeFactors, + in float InsideScale, + out vector RoundedEdgeTessFactors, + out vector RoundedInsideTessFactors, + out vector UnroundedInsideTessFactors); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `RawEdgeFactors` +* `InsideScale` +* `RoundedEdgeTessFactors` +* `RoundedInsideTessFactors` +* `UnroundedInsideTessFactors` + +-------------------------------------------------------------------------------- +# `ProcessQuadTessFactorsMax` + +## Signature + +``` +void ProcessQuadTessFactorsMax( + in vector RawEdgeFactors, + in float InsideScale, + out vector RoundedEdgeTessFactors, + out vector RoundedInsideTessFactors, + out vector UnroundedInsideTessFactors); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `RawEdgeFactors` +* `InsideScale` +* `RoundedEdgeTessFactors` +* `RoundedInsideTessFactors` +* `UnroundedInsideTessFactors` + +-------------------------------------------------------------------------------- +# `ProcessQuadTessFactorsMin` + +## Signature + +``` +void ProcessQuadTessFactorsMin( + in vector RawEdgeFactors, + in float InsideScale, + out vector RoundedEdgeTessFactors, + out vector RoundedInsideTessFactors, + out vector UnroundedInsideTessFactors); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `RawEdgeFactors` +* `InsideScale` +* `RoundedEdgeTessFactors` +* `RoundedInsideTessFactors` +* `UnroundedInsideTessFactors` + +-------------------------------------------------------------------------------- +# `ProcessTriTessFactorsAvg` + +## Signature + +``` +void ProcessTriTessFactorsAvg( + in vector RawEdgeFactors, + in float InsideScale, + out vector RoundedEdgeTessFactors, + out float RoundedInsideTessFactor, + out float UnroundedInsideTessFactor); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `RawEdgeFactors` +* `InsideScale` +* `RoundedEdgeTessFactors` +* `RoundedInsideTessFactor` +* `UnroundedInsideTessFactor` + +-------------------------------------------------------------------------------- +# `ProcessTriTessFactorsMax` + +## Signature + +``` +void ProcessTriTessFactorsMax( + in vector RawEdgeFactors, + in float InsideScale, + out vector RoundedEdgeTessFactors, + out float RoundedInsideTessFactor, + out float UnroundedInsideTessFactor); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `RawEdgeFactors` +* `InsideScale` +* `RoundedEdgeTessFactors` +* `RoundedInsideTessFactor` +* `UnroundedInsideTessFactor` + +-------------------------------------------------------------------------------- +# `ProcessTriTessFactorsMin` + +## Signature + +``` +void ProcessTriTessFactorsMin( + in vector RawEdgeFactors, + in float InsideScale, + out vector RoundedEdgeTessFactors, + out float RoundedInsideTessFactors, + out float UnroundedInsideTessFactors); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `RawEdgeFactors` +* `InsideScale` +* `RoundedEdgeTessFactors` +* `RoundedInsideTessFactors` +* `UnroundedInsideTessFactors` + +-------------------------------------------------------------------------------- +# `radians` + +## Signature + +``` +/// See Target Availability 1 +T radians(T x); +vector radians(vector x); +/// See Target Availability 2 +matrix radians(matrix x); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `rcp` + +## Signature + +``` +T rcp(T x); +vector rcp(vector x); +matrix rcp(matrix x); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `reflect` + +## Signature + +``` +vector reflect( + vector i, + vector n); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `i` +* `n` + +-------------------------------------------------------------------------------- +# `refract` + +## Signature + +``` +vector refract( + vector i, + vector n, + T eta); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `i` +* `n` +* `eta` + +-------------------------------------------------------------------------------- +# `reversebits` + +## Signature + +``` +/// See Target Availability 1 +uint reversebits(uint value); +/// See Target Availability 2 +vector reversebits(vector value); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` + +## Parameters + +* `N` +* `value` + +-------------------------------------------------------------------------------- +# `round` + +## Signature + +``` +/// See Target Availability 1 +T round(T x); +/// See Target Availability 2 +vector round(vector x); +/// See Target Availability 3 +matrix round(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `rsqrt` + +## Signature + +``` +/// See Target Availability 1 +T rsqrt(T x); +/// See Target Availability 2 +vector rsqrt(vector x); +/// See Target Availability 3 +matrix rsqrt(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `saturate` + +## Signature + +``` +T saturate(T x); +vector saturate(vector x); +matrix saturate(matrix x); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `sign` + +## Signature + +``` +/// See Target Availability 1 +int sign(T x); +/// See Target Availability 2 +vector sign(vector x); +/// See Target Availability 3 +matrix sign(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `sin` + +## Signature + +``` +/// See Target Availability 1 +T sin(T x); +/// See Target Availability 2 +vector sin(vector x); +/// See Target Availability 3 +matrix sin(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `sincos` + +## Signature + +``` +/// See Target Availability 1 +void sincos( + T x, + out T s, + out T c); +/// See Target Availability 2 +void sincos( + vector x, + out vector s, + out vector c); +void sincos( + matrix x, + out matrix s, + out matrix c); +``` + +## Target Availability + +1. `CUDA`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` +* `s` +* `c` + +-------------------------------------------------------------------------------- +# `sinh` + +## Signature + +``` +/// See Target Availability 1 +T sinh(T x); +/// See Target Availability 2 +vector sinh(vector x); +/// See Target Availability 3 +matrix sinh(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `smoothstep` + +## Signature + +``` +/// See Target Availability 1 +T smoothstep( + T min, + T max, + T x); +vector smoothstep( + vector min, + vector max, + vector x); +/// See Target Availability 2 +matrix smoothstep( + matrix min, + matrix max, + matrix x); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `min` +* `max` +* `x` + +-------------------------------------------------------------------------------- +# `sqrt` + +## Signature + +``` +/// See Target Availability 1 +T sqrt(T x); +/// See Target Availability 2 +vector sqrt(vector x); +/// See Target Availability 3 +matrix sqrt(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `step` + +## Signature + +``` +/// See Target Availability 1 +T step( + T y, + T x); +vector step( + vector y, + vector x); +/// See Target Availability 2 +matrix step( + matrix y, + matrix x); +``` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `y` +* `x` + +-------------------------------------------------------------------------------- +# `tan` + +## Signature + +``` +/// See Target Availability 1 +T tan(T x); +/// See Target Availability 2 +vector tan(vector x); +/// See Target Availability 3 +matrix tan(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `tanh` + +## Signature + +``` +/// See Target Availability 1 +T tanh(T x); +/// See Target Availability 2 +vector tanh(vector x); +/// See Target Availability 3 +matrix tanh(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `transpose` + +## Signature + +``` +matrix transpose(matrix x); +``` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `trunc` + +## Signature + +``` +/// See Target Availability 1 +T trunc(T x); +/// See Target Availability 2 +vector trunc(vector x); +/// See Target Availability 3 +matrix trunc(matrix x); +``` + +## Target Availability + +1. `CPP`, `CUDA`, `GLSL`, `HLSL` +2. `GLSL`, `HLSL` +3. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `x` + +-------------------------------------------------------------------------------- +# `WaveGetConvergedMask` + +## Signature + +``` +uint WaveGetConvergedMask(); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_ballot`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `WaveGetActiveMask` + +## Signature + +``` +uint WaveGetActiveMask(); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_ballot`, `SPIR-V 1.3` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `WaveMaskIsFirstLane` + +## Signature + +``` +bool WaveMaskIsFirstLane(uint mask); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_basic`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `mask` + +-------------------------------------------------------------------------------- +# `WaveMaskAllTrue` + +## Signature + +``` +bool WaveMaskAllTrue( + uint mask, + bool condition); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_vote`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `mask` +* `condition` + +-------------------------------------------------------------------------------- +# `WaveMaskAnyTrue` + +## Signature + +``` +bool WaveMaskAnyTrue( + uint mask, + bool condition); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_vote`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `mask` +* `condition` + +-------------------------------------------------------------------------------- +# `WaveMaskBallot` + +## Signature + +``` +uint WaveMaskBallot( + uint mask, + bool condition); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_ballot`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `mask` +* `condition` + +-------------------------------------------------------------------------------- +# `WaveMaskCountBits` + +## Signature + +``` +uint WaveMaskCountBits( + uint mask, + bool value); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_ballot` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `mask` +* `value` + +-------------------------------------------------------------------------------- +# `AllMemoryBarrierWithWaveMaskSync` + +## Signature + +``` +void AllMemoryBarrierWithWaveMaskSync(uint mask); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_basic`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `mask` + +-------------------------------------------------------------------------------- +# `GroupMemoryBarrierWithWaveMaskSync` + +## Signature + +``` +void GroupMemoryBarrierWithWaveMaskSync(uint mask); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_basic`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `mask` + +-------------------------------------------------------------------------------- +# `AllMemoryBarrierWithWaveSync` + +## Signature + +``` +void AllMemoryBarrierWithWaveSync(); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_basic`, `SPIR-V 1.3` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `GroupMemoryBarrierWithWaveSync` + +## Signature + +``` +void GroupMemoryBarrierWithWaveSync(); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_basic`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `WaveMaskBroadcastLaneAt` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskBroadcastLaneAt( + uint mask, + T value, + int lane); +vector WaveMaskBroadcastLaneAt( + uint mask, + vector value, + int lane); +/// See Target Availability 2 +matrix WaveMaskBroadcastLaneAt( + uint mask, + matrix value, + int lane); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_ballot`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `value` +* `lane` + +-------------------------------------------------------------------------------- +# `WaveMaskReadLaneAt` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskReadLaneAt( + uint mask, + T value, + int lane); +vector WaveMaskReadLaneAt( + uint mask, + vector value, + int lane); +/// See Target Availability 2 +matrix WaveMaskReadLaneAt( + uint mask, + matrix value, + int lane); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_shuffle`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `value` +* `lane` + +-------------------------------------------------------------------------------- +# `WaveMaskShuffle` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskShuffle( + uint mask, + T value, + int lane); +vector WaveMaskShuffle( + uint mask, + vector value, + int lane); +/// See Target Availability 2 +matrix WaveMaskShuffle( + uint mask, + matrix value, + int lane); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_shuffle`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `value` +* `lane` + +-------------------------------------------------------------------------------- +# `WaveMaskPrefixCountBits` + +## Signature + +``` +uint WaveMaskPrefixCountBits( + uint mask, + bool value); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_ballot`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `mask` +* `value` + +-------------------------------------------------------------------------------- +# `WaveMaskBitAnd` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskBitAnd( + uint mask, + T expr); +vector WaveMaskBitAnd( + uint mask, + vector expr); +/// See Target Availability 2 +matrix WaveMaskBitAnd( + uint mask, + matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveMaskBitOr` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskBitOr( + uint mask, + T expr); +vector WaveMaskBitOr( + uint mask, + vector expr); +/// See Target Availability 2 +matrix WaveMaskBitOr( + uint mask, + matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveMaskBitXor` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskBitXor( + uint mask, + T expr); +vector WaveMaskBitXor( + uint mask, + vector expr); +/// See Target Availability 2 +matrix WaveMaskBitXor( + uint mask, + matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveMaskMax` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskMax( + uint mask, + T expr); +vector WaveMaskMax( + uint mask, + vector expr); +/// See Target Availability 2 +matrix WaveMaskMax( + uint mask, + matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveMaskMin` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskMin( + uint mask, + T expr); +vector WaveMaskMin( + uint mask, + vector expr); +/// See Target Availability 2 +matrix WaveMaskMin( + uint mask, + matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveMaskProduct` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskProduct( + uint mask, + T expr); +vector WaveMaskProduct( + uint mask, + vector expr); +/// See Target Availability 2 +matrix WaveMaskProduct( + uint mask, + matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveMaskSum` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskSum( + uint mask, + T expr); +vector WaveMaskSum( + uint mask, + vector expr); +/// See Target Availability 2 +matrix WaveMaskSum( + uint mask, + matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveMaskAllEqual` + +## Signature + +``` +/// See Requirement 1 +/// See Target Availability 1 +bool WaveMaskAllEqual( + uint mask, + T value); +bool WaveMaskAllEqual( + uint mask, + vector value); +/// See Requirement 2 +/// See Target Availability 2 +bool WaveMaskAllEqual( + uint mask, + matrix value); +``` + +## Requirements + +1. `CUDA SM 7.0`, `GLSL GL_KHR_shader_subgroup_vote`, `SPIR-V 1.3` +2. `CUDA SM 7.0` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `value` + +-------------------------------------------------------------------------------- +# `WaveMaskPrefixProduct` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskPrefixProduct( + uint mask, + T expr); +vector WaveMaskPrefixProduct( + uint mask, + vector expr); +/// See Target Availability 2 +matrix WaveMaskPrefixProduct( + uint mask, + matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveMaskPrefixSum` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskPrefixSum( + uint mask, + T expr); +vector WaveMaskPrefixSum( + uint mask, + vector expr); +/// See Target Availability 2 +matrix WaveMaskPrefixSum( + uint mask, + matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveMaskReadLaneFirst` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskReadLaneFirst( + uint mask, + T expr); +vector WaveMaskReadLaneFirst( + uint mask, + vector expr); +/// See Target Availability 2 +matrix WaveMaskReadLaneFirst( + uint mask, + matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_ballot`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveMaskMatch` + +## Signature + +``` +uint WaveMaskMatch( + uint mask, + T value); +uint WaveMaskMatch( + uint mask, + vector value); +uint WaveMaskMatch( + uint mask, + matrix value); +``` + +## Requirements + +`CUDA SM 7.0` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `value` + +-------------------------------------------------------------------------------- +# `WaveMaskPrefixBitAnd` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskPrefixBitAnd( + uint mask, + T expr); +/// See Target Availability 2 +vector WaveMaskPrefixBitAnd( + uint mask, + vector expr); +/// See Target Availability 1 +matrix WaveMaskPrefixBitAnd( + uint mask, + matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `HLSL` +2. `CUDA`, `GLSL`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveMaskPrefixBitOr` + +## Signature + +``` +T WaveMaskPrefixBitOr( + uint mask, + T expr); +vector WaveMaskPrefixBitOr( + uint mask, + vector expr); +matrix WaveMaskPrefixBitOr( + uint mask, + matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveMaskPrefixBitXor` + +## Signature + +``` +/// See Target Availability 1 +T WaveMaskPrefixBitXor( + uint mask, + T expr); +vector WaveMaskPrefixBitXor( + uint mask, + vector expr); +/// See Target Availability 2 +matrix WaveMaskPrefixBitXor( + uint mask, + matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `mask` +* `expr` + +-------------------------------------------------------------------------------- +# `QuadReadLaneAt` + +## Signature + +``` +T QuadReadLaneAt( + T sourceValue, + uint quadLaneID); +vector QuadReadLaneAt( + vector sourceValue, + uint quadLaneID); +matrix QuadReadLaneAt( + matrix sourceValue, + uint quadLaneID); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `sourceValue` +* `quadLaneID` + +-------------------------------------------------------------------------------- +# `QuadReadAcrossX` + +## Signature + +``` +T QuadReadAcrossX(T localValue); +vector QuadReadAcrossX(vector localValue); +matrix QuadReadAcrossX(matrix localValue); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `localValue` + +-------------------------------------------------------------------------------- +# `QuadReadAcrossY` + +## Signature + +``` +T QuadReadAcrossY(T localValue); +vector QuadReadAcrossY(vector localValue); +matrix QuadReadAcrossY(matrix localValue); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `localValue` + +-------------------------------------------------------------------------------- +# `QuadReadAcrossDiagonal` + +## Signature + +``` +T QuadReadAcrossDiagonal(T localValue); +vector QuadReadAcrossDiagonal(vector localValue); +matrix QuadReadAcrossDiagonal(matrix localValue); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `localValue` + +-------------------------------------------------------------------------------- +# `WaveActiveBitAnd` + +## Signature + +``` +/// See Target Availability 1 +T WaveActiveBitAnd(T expr); +vector WaveActiveBitAnd(vector expr); +/// See Target Availability 2 +matrix WaveActiveBitAnd(matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveActiveBitOr` + +## Signature + +``` +/// See Target Availability 1 +T WaveActiveBitOr(T expr); +vector WaveActiveBitOr(vector expr); +/// See Target Availability 2 +matrix WaveActiveBitOr(matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveActiveBitXor` + +## Signature + +``` +/// See Target Availability 1 +T WaveActiveBitXor(T expr); +vector WaveActiveBitXor(vector expr); +/// See Target Availability 2 +matrix WaveActiveBitXor(matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveActiveMax` + +## Signature + +``` +/// See Target Availability 1 +T WaveActiveMax(T expr); +vector WaveActiveMax(vector expr); +/// See Target Availability 2 +matrix WaveActiveMax(matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveActiveMin` + +## Signature + +``` +/// See Target Availability 1 +T WaveActiveMin(T expr); +vector WaveActiveMin(vector expr); +/// See Target Availability 2 +matrix WaveActiveMin(matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveActiveProduct` + +## Signature + +``` +/// See Target Availability 1 +T WaveActiveProduct(T expr); +vector WaveActiveProduct(vector expr); +/// See Target Availability 2 +matrix WaveActiveProduct(matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveActiveSum` + +## Signature + +``` +/// See Target Availability 1 +T WaveActiveSum(T expr); +vector WaveActiveSum(vector expr); +/// See Target Availability 2 +matrix WaveActiveSum(matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveActiveAllEqual` + +## Signature + +``` +/// See Target Availability 1 +bool WaveActiveAllEqual(T value); +bool WaveActiveAllEqual(vector value); +/// See Target Availability 2 +bool WaveActiveAllEqual(matrix value); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_vote`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `value` + +-------------------------------------------------------------------------------- +# `WaveActiveAllTrue` + +## Signature + +``` +bool WaveActiveAllTrue(bool condition); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_vote`, `SPIR-V 1.3` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `condition` + +-------------------------------------------------------------------------------- +# `WaveActiveAnyTrue` + +## Signature + +``` +bool WaveActiveAnyTrue(bool condition); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_vote`, `SPIR-V 1.3` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `condition` + +-------------------------------------------------------------------------------- +# `WaveActiveBallot` + +## Signature + +``` +vector WaveActiveBallot(bool condition); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_ballot`, `SPIR-V 1.3` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `condition` + +-------------------------------------------------------------------------------- +# `WaveActiveCountBits` + +## Signature + +``` +uint WaveActiveCountBits(bool value); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `value` + +-------------------------------------------------------------------------------- +# `WaveGetLaneCount` + +## Signature + +``` +uint WaveGetLaneCount(); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_basic`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `WaveGetLaneIndex` + +## Signature + +``` +uint WaveGetLaneIndex(); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_basic`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `WaveIsFirstLane` + +## Signature + +``` +bool WaveIsFirstLane(); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_basic`, `SPIR-V 1.3` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `_WaveCountBits` + +## Signature + +``` +uint _WaveCountBits(vector value); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `value` + +-------------------------------------------------------------------------------- +# `WavePrefixProduct` + +## Signature + +``` +/// See Target Availability 1 +T WavePrefixProduct(T expr); +vector WavePrefixProduct(vector expr); +/// See Target Availability 2 +matrix WavePrefixProduct(matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `expr` + +-------------------------------------------------------------------------------- +# `WavePrefixSum` + +## Signature + +``` +/// See Target Availability 1 +T WavePrefixSum(T expr); +vector WavePrefixSum(vector expr); +/// See Target Availability 2 +matrix WavePrefixSum(matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveReadLaneFirst` + +## Signature + +``` +/// See Target Availability 1 +T WaveReadLaneFirst(T expr); +vector WaveReadLaneFirst(vector expr); +/// See Target Availability 2 +matrix WaveReadLaneFirst(matrix expr); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_ballot`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `expr` + +-------------------------------------------------------------------------------- +# `WaveBroadcastLaneAt` + +## Signature + +``` +/// See Target Availability 1 +T WaveBroadcastLaneAt( + T value, + int lane); +vector WaveBroadcastLaneAt( + vector value, + int lane); +/// See Target Availability 2 +matrix WaveBroadcastLaneAt( + matrix value, + int lane); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_ballot`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `value` +* `lane` + +-------------------------------------------------------------------------------- +# `WaveReadLaneAt` + +## Signature + +``` +/// See Target Availability 1 +T WaveReadLaneAt( + T value, + int lane); +vector WaveReadLaneAt( + vector value, + int lane); +/// See Target Availability 2 +matrix WaveReadLaneAt( + matrix value, + int lane); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_shuffle`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `value` +* `lane` + +-------------------------------------------------------------------------------- +# `WaveShuffle` + +## Signature + +``` +/// See Target Availability 1 +T WaveShuffle( + T value, + int lane); +vector WaveShuffle( + vector value, + int lane); +/// See Target Availability 2 +matrix WaveShuffle( + matrix value, + int lane); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_shuffle`, `SPIR-V 1.3` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `value` +* `lane` + +-------------------------------------------------------------------------------- +# `WavePrefixCountBits` + +## Signature + +``` +uint WavePrefixCountBits(bool value); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_ballot`, `SPIR-V 1.3` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `value` + +-------------------------------------------------------------------------------- +# `WaveGetConvergedMulti` + +## Signature + +``` +vector WaveGetConvergedMulti(); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_ballot`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `WaveGetActiveMulti` + +## Signature + +``` +vector WaveGetActiveMulti(); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_ballot`, `SPIR-V 1.3` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `WaveMatch` + +## Signature + +``` +vector WaveMatch(T value); +vector WaveMatch(vector value); +vector WaveMatch(matrix value); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `value` + +-------------------------------------------------------------------------------- +# `WaveMultiPrefixCountBits` + +## Signature + +``` +uint WaveMultiPrefixCountBits( + bool value, + vector mask); +``` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `value` +* `mask` + +-------------------------------------------------------------------------------- +# `WaveMultiPrefixBitAnd` + +## Signature + +``` +/// See Target Availability 1 +T WaveMultiPrefixBitAnd( + T expr, + vector mask); +vector WaveMultiPrefixBitAnd( + vector expr, + vector mask); +/// See Target Availability 2 +matrix WaveMultiPrefixBitAnd( + matrix expr, + vector mask); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `expr` +* `mask` + +-------------------------------------------------------------------------------- +# `WaveMultiPrefixBitOr` + +## Signature + +``` +T WaveMultiPrefixBitOr( + T expr, + vector mask); +vector WaveMultiPrefixBitOr( + vector expr, + vector mask); +matrix WaveMultiPrefixBitOr( + matrix expr, + vector mask); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `expr` +* `mask` + +-------------------------------------------------------------------------------- +# `WaveMultiPrefixBitXor` + +## Signature + +``` +/// See Target Availability 1 +T WaveMultiPrefixBitXor( + T expr, + vector mask); +vector WaveMultiPrefixBitXor( + vector expr, + vector mask); +/// See Target Availability 2 +matrix WaveMultiPrefixBitXor( + matrix expr, + vector mask); +``` + +## Requirements + +`GLSL GL_KHR_shader_subgroup_arithmetic`, `SPIR-V 1.3` + +## Target Availability + +1. `CUDA`, `GLSL`, `HLSL` +2. `CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `expr` +* `mask` + +-------------------------------------------------------------------------------- +# `WaveMultiPrefixProduct` + +## Signature + +``` +T WaveMultiPrefixProduct( + T value, + vector mask); +vector WaveMultiPrefixProduct( + vector value, + vector mask); +matrix WaveMultiPrefixProduct( + matrix value, + vector mask); +``` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `value` +* `mask` + +-------------------------------------------------------------------------------- +# `WaveMultiPrefixSum` + +## Signature + +``` +T WaveMultiPrefixSum( + T value, + vector mask); +vector WaveMultiPrefixSum( + vector value, + vector mask); +matrix WaveMultiPrefixSum( + matrix value, + vector mask); +``` + +## Target Availability + +`CUDA`, `HLSL` + +## Parameters + +* `T` +* `N` +* `M` +* `value` +* `mask` + +-------------------------------------------------------------------------------- +# `struct Buffer` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `Buffer.GetDimensions` + +## Signature + +``` +void Buffer.GetDimensions(out uint dim); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `dim` + +-------------------------------------------------------------------------------- +# `Buffer.Load` + +## Signature + +``` +/// See Target Availability 1 +T Buffer.Load(int location); +/// See Target Availability 2 +T Buffer.Load( + int location, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `Buffer.subscript` + +## Signature + +``` +T Buffer.subscript(uint index); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `index` + +-------------------------------------------------------------------------------- +# `struct RWBuffer` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RWBuffer.GetDimensions` + +## Signature + +``` +void RWBuffer.GetDimensions(out uint dim); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `dim` + +-------------------------------------------------------------------------------- +# `RWBuffer.Load` + +## Signature + +``` +/// See Target Availability 1 +T RWBuffer.Load(int location); +/// See Target Availability 2 +T RWBuffer.Load( + int location, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `RWBuffer.subscript` + +## Signature + +``` +T RWBuffer.subscript(uint index); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `index` + +-------------------------------------------------------------------------------- +# `struct RasterizerOrderedBuffer` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` +* `Load` +* `subscript` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedBuffer.GetDimensions` + +## Signature + +``` +void RasterizerOrderedBuffer.GetDimensions(out uint dim); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `dim` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedBuffer.Load` + +## Signature + +``` +/// See Target Availability 1 +T RasterizerOrderedBuffer.Load(int location); +/// See Target Availability 2 +T RasterizerOrderedBuffer.Load( + int location, + out uint status); +``` + +## Requirements + +`GLSL GL_EXT_samplerless_texture_functions` + +## Target Availability + +1. `GLSL`, `HLSL` +2. `HLSL` + +## Parameters + +* `location` +* `status` + +-------------------------------------------------------------------------------- +# `RasterizerOrderedBuffer.subscript` + +## Signature + +``` +T RasterizerOrderedBuffer.subscript(uint index); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `index` + +-------------------------------------------------------------------------------- +# RAY_FLAG_NONE + +``` +uint RAY_FLAG_NONE +``` + + +-------------------------------------------------------------------------------- +# RAY_FLAG_FORCE_OPAQUE + +``` +uint RAY_FLAG_FORCE_OPAQUE +``` + + +-------------------------------------------------------------------------------- +# RAY_FLAG_FORCE_NON_OPAQUE + +``` +uint RAY_FLAG_FORCE_NON_OPAQUE +``` + + +-------------------------------------------------------------------------------- +# RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH + +``` +uint RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH +``` + + +-------------------------------------------------------------------------------- +# RAY_FLAG_SKIP_CLOSEST_HIT_SHADER + +``` +uint RAY_FLAG_SKIP_CLOSEST_HIT_SHADER +``` + + +-------------------------------------------------------------------------------- +# RAY_FLAG_CULL_BACK_FACING_TRIANGLES + +``` +uint RAY_FLAG_CULL_BACK_FACING_TRIANGLES +``` + + +-------------------------------------------------------------------------------- +# RAY_FLAG_CULL_FRONT_FACING_TRIANGLES + +``` +uint RAY_FLAG_CULL_FRONT_FACING_TRIANGLES +``` + + +-------------------------------------------------------------------------------- +# RAY_FLAG_CULL_OPAQUE + +``` +uint RAY_FLAG_CULL_OPAQUE +``` + + +-------------------------------------------------------------------------------- +# RAY_FLAG_CULL_NON_OPAQUE + +``` +uint RAY_FLAG_CULL_NON_OPAQUE +``` + + +-------------------------------------------------------------------------------- +# RAY_FLAG_SKIP_TRIANGLES + +``` +uint RAY_FLAG_SKIP_TRIANGLES +``` + + +-------------------------------------------------------------------------------- +# RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES + +``` +uint RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES +``` + + +-------------------------------------------------------------------------------- +# `struct RayDesc` + +## Fields + +* `Origin` +* `TMin` +* `Direction` +* `TMax` + +-------------------------------------------------------------------------------- +# `struct RaytracingAccelerationStructure` + + +-------------------------------------------------------------------------------- +# `struct BuiltInTriangleIntersectionAttributes` + +## Fields + +* `barycentrics` + +-------------------------------------------------------------------------------- +# `CallShader` + +## Signature + +``` +void CallShader( + uint shaderIndex, + inout Payload payload); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `Payload` +* `shaderIndex` +* `payload` + +-------------------------------------------------------------------------------- +# `TraceRay` + +## Signature + +``` +void TraceRay( + RaytracingAccelerationStructure AccelerationStructure, + uint RayFlags, + uint InstanceInclusionMask, + uint RayContributionToHitGroupIndex, + uint MultiplierForGeometryContributionToHitGroupIndex, + uint MissShaderIndex, + RayDesc Ray, + inout payload_t Payload); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `payload_t` +* `AccelerationStructure` +* `RayFlags` +* `InstanceInclusionMask` +* `RayContributionToHitGroupIndex` +* `MultiplierForGeometryContributionToHitGroupIndex` +* `MissShaderIndex` +* `Ray` +* `Payload` + +-------------------------------------------------------------------------------- +# `ReportHit` + +## Signature + +``` +bool ReportHit( + float tHit, + uint hitKind, + A attributes); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `A` +* `tHit` +* `hitKind` +* `attributes` + +-------------------------------------------------------------------------------- +# `IgnoreHit` + +## Signature + +``` +void IgnoreHit(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `AcceptHitAndEndSearch` + +## Signature + +``` +void AcceptHitAndEndSearch(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `DispatchRaysIndex` + +## Signature + +``` +vector DispatchRaysIndex(); +``` + +## Target Availability + +`CUDA`, `GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `DispatchRaysDimensions` + +## Signature + +``` +vector DispatchRaysDimensions(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `WorldRayOrigin` + +## Signature + +``` +vector WorldRayOrigin(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `WorldRayDirection` + +## Signature + +``` +vector WorldRayDirection(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayTMin` + +## Signature + +``` +float RayTMin(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayTCurrent` + +## Signature + +``` +float RayTCurrent(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayFlags` + +## Signature + +``` +uint RayFlags(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `InstanceIndex` + +## Signature + +``` +uint InstanceIndex(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `InstanceID` + +## Signature + +``` +uint InstanceID(); +``` + +## Target Availability + +`HLSL`, `__GLSLRAYTRACING` + + +-------------------------------------------------------------------------------- +# `PrimitiveIndex` + +## Signature + +``` +uint PrimitiveIndex(); +``` + +## Target Availability + +`HLSL`, `__GLSLRAYTRACING` + + +-------------------------------------------------------------------------------- +# `ObjectRayOrigin` + +## Signature + +``` +vector ObjectRayOrigin(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `ObjectRayDirection` + +## Signature + +``` +vector ObjectRayDirection(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `ObjectToWorld3x4` + +## Signature + +``` +matrix ObjectToWorld3x4(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `WorldToObject3x4` + +## Signature + +``` +matrix WorldToObject3x4(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `ObjectToWorld4x3` + +## Signature + +``` +matrix ObjectToWorld4x3(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `WorldToObject4x3` + +## Signature + +``` +matrix WorldToObject4x3(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# `ObjectToWorld` + +## Signature + +``` +matrix ObjectToWorld(); +``` + +## Target Availability + +`HLSL` + + +-------------------------------------------------------------------------------- +# `WorldToObject` + +## Signature + +``` +matrix WorldToObject(); +``` + +## Target Availability + +`HLSL` + + +-------------------------------------------------------------------------------- +# `HitKind` + +## Signature + +``` +uint HitKind(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `GL_NV_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# HIT_KIND_TRIANGLE_FRONT_FACE + +``` +uint HIT_KIND_TRIANGLE_FRONT_FACE +``` + + +-------------------------------------------------------------------------------- +# HIT_KIND_TRIANGLE_BACK_FACE + +``` +uint HIT_KIND_TRIANGLE_BACK_FACE +``` + + +-------------------------------------------------------------------------------- +# `dot4add_u8packed` + +## Signature + +``` +uint dot4add_u8packed( + uint left, + uint right, + uint acc); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `left` +* `right` +* `acc` + +-------------------------------------------------------------------------------- +# `dot4add_i8packed` + +## Signature + +``` +int dot4add_i8packed( + uint left, + uint right, + int acc); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `left` +* `right` +* `acc` + +-------------------------------------------------------------------------------- +# `dot2add` + +## Signature + +``` +float dot2add( + vector left, + vector right, + float acc); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `left` +* `right` +* `acc` + +-------------------------------------------------------------------------------- +# `SetMeshOutputCounts` + +## Signature + +``` +void SetMeshOutputCounts( + uint vertexCount, + uint primitiveCount); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `vertexCount` +* `primitiveCount` + +-------------------------------------------------------------------------------- +# `DispatchMesh` + +## Signature + +``` +void DispatchMesh

( + uint threadGroupCountX, + uint threadGroupCountY, + uint threadGroupCountZ, + P meshPayload); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `P` +* `threadGroupCountX` +* `threadGroupCountY` +* `threadGroupCountZ` +* `meshPayload` + +-------------------------------------------------------------------------------- +# `struct SAMPLER_FEEDBACK_MIN_MIP` + +*Implements:* `__BuiltinSamplerFeedbackType` + + +-------------------------------------------------------------------------------- +# `struct SAMPLER_FEEDBACK_MIP_REGION_USED` + +*Implements:* `__BuiltinSamplerFeedbackType` + + +-------------------------------------------------------------------------------- +# `struct FeedbackTexture2D` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` + +-------------------------------------------------------------------------------- +# `FeedbackTexture2D.GetDimensions` + +## Signature + +``` +void FeedbackTexture2D.GetDimensions( + out uint width, + out uint height); +void FeedbackTexture2D.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint numberOfLevels); +void FeedbackTexture2D.GetDimensions( + out float width, + out float height); +void FeedbackTexture2D.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float numberOfLevels); +``` + +## Target Availability + +``, `HLSL` + +## Parameters + +* `width` +* `height` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `FeedbackTexture2D.WriteSamplerFeedbackLevel` + +## Signature + +``` +void FeedbackTexture2D.WriteSamplerFeedbackLevel( + Texture2D tex, + SamplerState samp, + vector location, + float lod); +``` + +## Target Availability + +`CPP`, `HLSL` + +## Parameters + +* `S` +* `tex` +* `samp` +* `location` +* `lod` + +-------------------------------------------------------------------------------- +# `FeedbackTexture2D.WriteSamplerFeedback` + +## Signature + +``` +void FeedbackTexture2D.WriteSamplerFeedback( + Texture2D tex, + SamplerState samp, + vector location, + float clamp); +void FeedbackTexture2D.WriteSamplerFeedback( + Texture2D tex, + SamplerState samp, + vector location); +``` + +## Target Availability + +`CPP`, `HLSL` + +## Parameters + +* `S` +* `tex` +* `samp` +* `location` +* `clamp` + +-------------------------------------------------------------------------------- +# `FeedbackTexture2D.WriteSamplerFeedbackBias` + +## Signature + +``` +void FeedbackTexture2D.WriteSamplerFeedbackBias( + Texture2D tex, + SamplerState samp, + vector location, + float bias, + float clamp); +void FeedbackTexture2D.WriteSamplerFeedbackBias( + Texture2D tex, + SamplerState samp, + vector location, + float bias); +``` + +## Target Availability + +`CPP`, `HLSL` + +## Parameters + +* `S` +* `tex` +* `samp` +* `location` +* `bias` +* `clamp` + +-------------------------------------------------------------------------------- +# `FeedbackTexture2D.WriteSamplerFeedbackGrad` + +## Signature + +``` +void FeedbackTexture2D.WriteSamplerFeedbackGrad( + Texture2D tex, + SamplerState samp, + vector location, + vector ddx, + vector ddy, + float clamp); +void FeedbackTexture2D.WriteSamplerFeedbackGrad( + Texture2D tex, + SamplerState samp, + vector location, + vector ddx, + vector ddy); +``` + +## Target Availability + +`CPP`, `HLSL` + +## Parameters + +* `S` +* `tex` +* `samp` +* `location` +* `ddx` +* `ddy` +* `clamp` + +-------------------------------------------------------------------------------- +# `struct FeedbackTexture2DArray` + +## Generic Parameters + +* `T` +## Methods + +* `GetDimensions` + +-------------------------------------------------------------------------------- +# `FeedbackTexture2DArray.GetDimensions` + +## Signature + +``` +void FeedbackTexture2DArray.GetDimensions( + out uint width, + out uint height, + out uint elements); +void FeedbackTexture2DArray.GetDimensions( + uint mipLevel, + out uint width, + out uint height, + out uint elements, + out uint numberOfLevels); +void FeedbackTexture2DArray.GetDimensions( + out float width, + out float height, + out float elements); +void FeedbackTexture2DArray.GetDimensions( + uint mipLevel, + out float width, + out float height, + out float elements, + out float numberOfLevels); +``` + +## Target Availability + +``, `HLSL` + +## Parameters + +* `width` +* `height` +* `elements` +* `mipLevel` +* `numberOfLevels` + +-------------------------------------------------------------------------------- +# `FeedbackTexture2DArray.WriteSamplerFeedbackLevel` + +## Signature + +``` +void FeedbackTexture2DArray.WriteSamplerFeedbackLevel( + Texture2DArray texArray, + SamplerState samp, + vector location, + float lod); +``` + +## Target Availability + +`CPP`, `HLSL` + +## Parameters + +* `S` +* `texArray` +* `samp` +* `location` +* `lod` + +-------------------------------------------------------------------------------- +# `FeedbackTexture2DArray.WriteSamplerFeedback` + +## Signature + +``` +void FeedbackTexture2DArray.WriteSamplerFeedback( + Texture2DArray texArray, + SamplerState samp, + vector location, + float clamp); +void FeedbackTexture2DArray.WriteSamplerFeedback( + Texture2DArray texArray, + SamplerState samp, + vector location); +``` + +## Target Availability + +`CPP`, `HLSL` + +## Parameters + +* `S` +* `texArray` +* `samp` +* `location` +* `clamp` + +-------------------------------------------------------------------------------- +# `FeedbackTexture2DArray.WriteSamplerFeedbackBias` + +## Signature + +``` +void FeedbackTexture2DArray.WriteSamplerFeedbackBias( + Texture2DArray texArray, + SamplerState samp, + vector location, + float bias, + float clamp); +void FeedbackTexture2DArray.WriteSamplerFeedbackBias( + Texture2DArray texArray, + SamplerState samp, + vector location, + float bias); +``` + +## Target Availability + +`CPP`, `HLSL` + +## Parameters + +* `S` +* `texArray` +* `samp` +* `location` +* `bias` +* `clamp` + +-------------------------------------------------------------------------------- +# `FeedbackTexture2DArray.WriteSamplerFeedbackGrad` + +## Signature + +``` +void FeedbackTexture2DArray.WriteSamplerFeedbackGrad( + Texture2DArray texArray, + SamplerState samp, + vector location, + vector ddx, + vector ddy, + float clamp); +void FeedbackTexture2DArray.WriteSamplerFeedbackGrad( + Texture2DArray texArray, + SamplerState samp, + vector location, + vector ddx, + vector ddy); +``` + +## Target Availability + +`CPP`, `HLSL` + +## Parameters + +* `S` +* `texArray` +* `samp` +* `location` +* `ddx` +* `ddy` +* `clamp` + +-------------------------------------------------------------------------------- +# `GeometryIndex` + +## Signature + +``` +uint GeometryIndex(); +``` + +## Target Availability + +`GL_EXT_RAY_TRACING`, `HLSL` + + +-------------------------------------------------------------------------------- +# COMMITTED_NOTHING + +``` +uint COMMITTED_NOTHING +``` + + +-------------------------------------------------------------------------------- +# COMMITTED_TRIANGLE_HIT + +``` +uint COMMITTED_TRIANGLE_HIT +``` + + +-------------------------------------------------------------------------------- +# COMMITTED_PROCEDURAL_PRIMITIVE_HIT + +``` +uint COMMITTED_PROCEDURAL_PRIMITIVE_HIT +``` + + +-------------------------------------------------------------------------------- +# CANDIDATE_NON_OPAQUE_TRIANGLE + +``` +uint CANDIDATE_NON_OPAQUE_TRIANGLE +``` + + +-------------------------------------------------------------------------------- +# CANDIDATE_PROCEDURAL_PRIMITIVE + +``` +uint CANDIDATE_PROCEDURAL_PRIMITIVE +``` + + +-------------------------------------------------------------------------------- +# `struct RayQuery` + +## Generic Parameters + +* `rayFlags` +## Methods + +* `init` +* `TraceRayInline` +* `Proceed` +* `Abort` +* `CandidateType` +* `CandidateObjectToWorld3x4` +* `CandidateObjectToWorld4x3` +* `CandidateWorldToObject3x4` +* `CandidateWorldToObject4x3` +* `CandidateInstanceIndex` +* `CandidateInstanceID` +* `CandidateGeometryIndex` +* `CandidatePrimitiveIndex` +* `CandidateInstanceContributionToHitGroupIndex` +* `CandidateObjectRayOrigin` +* `CandidateObjectRayDirection` +* `CandidateProceduralPrimitiveNonOpaque` +* `CandidateTriangleFrontFace` +* `CandidateTriangleBarycentrics` +* `CandidateTriangleRayT` +* `CommitNonOpaqueTriangleHit` +* `CommitProceduralPrimitiveHit` +* `CommittedStatus` +* `CommittedObjectToWorld3x4` +* `CommittedObjectToWorld4x3` +* `CommittedWorldToObject3x4` +* `CommittedWorldToObject4x3` +* `CommittedRayT` +* `CommittedInstanceIndex` +* `CommittedInstanceID` +* `CommittedGeometryIndex` +* `CommittedPrimitiveIndex` +* `CommittedInstanceContributionToHitGroupIndex` +* `CommittedObjectRayOrigin` +* `CommittedObjectRayDirection` +* `CommittedTriangleFrontFace` +* `CommittedTriangleBarycentrics` +* `RayFlags` +* `WorldRayOrigin` +* `WorldRayDirection` +* `RayTMin` + +-------------------------------------------------------------------------------- +# `RayQuery.init` + +## Signature + +``` +RayQuery.init(); +``` + +## Target Availability + +`HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.TraceRayInline` + +## Signature + +``` +void RayQuery.TraceRayInline( + RaytracingAccelerationStructure accelerationStructure, + uint rayFlags, + uint instanceInclusionMask, + RayDesc ray); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `accelerationStructure` +* `rayFlags` +* `instanceInclusionMask` +* `ray` + +-------------------------------------------------------------------------------- +# `RayQuery.Proceed` + +## Signature + +``` +bool RayQuery.Proceed(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.Abort` + +## Signature + +``` +void RayQuery.Abort(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateType` + +## Signature + +``` +uint RayQuery.CandidateType(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateObjectToWorld3x4` + +## Signature + +``` +matrix RayQuery.CandidateObjectToWorld3x4(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateObjectToWorld4x3` + +## Signature + +``` +matrix RayQuery.CandidateObjectToWorld4x3(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateWorldToObject3x4` + +## Signature + +``` +matrix RayQuery.CandidateWorldToObject3x4(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateWorldToObject4x3` + +## Signature + +``` +matrix RayQuery.CandidateWorldToObject4x3(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateInstanceIndex` + +## Signature + +``` +uint RayQuery.CandidateInstanceIndex(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateInstanceID` + +## Signature + +``` +uint RayQuery.CandidateInstanceID(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateGeometryIndex` + +## Signature + +``` +uint RayQuery.CandidateGeometryIndex(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidatePrimitiveIndex` + +## Signature + +``` +uint RayQuery.CandidatePrimitiveIndex(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateInstanceContributionToHitGroupIndex` + +## Signature + +``` +uint RayQuery.CandidateInstanceContributionToHitGroupIndex(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateObjectRayOrigin` + +## Signature + +``` +vector RayQuery.CandidateObjectRayOrigin(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateObjectRayDirection` + +## Signature + +``` +vector RayQuery.CandidateObjectRayDirection(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateProceduralPrimitiveNonOpaque` + +## Signature + +``` +bool RayQuery.CandidateProceduralPrimitiveNonOpaque(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateTriangleFrontFace` + +## Signature + +``` +bool RayQuery.CandidateTriangleFrontFace(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateTriangleBarycentrics` + +## Signature + +``` +vector RayQuery.CandidateTriangleBarycentrics(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CandidateTriangleRayT` + +## Signature + +``` +float RayQuery.CandidateTriangleRayT(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommitNonOpaqueTriangleHit` + +## Signature + +``` +void RayQuery.CommitNonOpaqueTriangleHit(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommitProceduralPrimitiveHit` + +## Signature + +``` +void RayQuery.CommitProceduralPrimitiveHit(float t); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + +## Parameters + +* `t` + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedStatus` + +## Signature + +``` +uint RayQuery.CommittedStatus(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedObjectToWorld3x4` + +## Signature + +``` +matrix RayQuery.CommittedObjectToWorld3x4(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedObjectToWorld4x3` + +## Signature + +``` +matrix RayQuery.CommittedObjectToWorld4x3(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedWorldToObject3x4` + +## Signature + +``` +matrix RayQuery.CommittedWorldToObject3x4(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedWorldToObject4x3` + +## Signature + +``` +matrix RayQuery.CommittedWorldToObject4x3(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedRayT` + +## Signature + +``` +float RayQuery.CommittedRayT(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedInstanceIndex` + +## Signature + +``` +uint RayQuery.CommittedInstanceIndex(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedInstanceID` + +## Signature + +``` +uint RayQuery.CommittedInstanceID(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedGeometryIndex` + +## Signature + +``` +uint RayQuery.CommittedGeometryIndex(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedPrimitiveIndex` + +## Signature + +``` +uint RayQuery.CommittedPrimitiveIndex(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedInstanceContributionToHitGroupIndex` + +## Signature + +``` +uint RayQuery.CommittedInstanceContributionToHitGroupIndex(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedObjectRayOrigin` + +## Signature + +``` +vector RayQuery.CommittedObjectRayOrigin(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedObjectRayDirection` + +## Signature + +``` +vector RayQuery.CommittedObjectRayDirection(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedTriangleFrontFace` + +## Signature + +``` +bool RayQuery.CommittedTriangleFrontFace(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.CommittedTriangleBarycentrics` + +## Signature + +``` +vector RayQuery.CommittedTriangleBarycentrics(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.RayFlags` + +## Signature + +``` +uint RayQuery.RayFlags(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.WorldRayOrigin` + +## Signature + +``` +vector RayQuery.WorldRayOrigin(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.WorldRayDirection` + +## Signature + +``` +vector RayQuery.WorldRayDirection(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `RayQuery.RayTMin` + +## Signature + +``` +float RayQuery.RayTMin(); +``` + +## Requirements + +`GLSL GL_EXT_ray_query`, `GLSL460` + +## Target Availability + +`GLSL`, `HLSL` + + +-------------------------------------------------------------------------------- +# `struct VkSubpassInput` + +## Generic Parameters + +* `T` +## Methods + +* `SubpassLoad` + +-------------------------------------------------------------------------------- +# `VkSubpassInput.SubpassLoad` + +## Signature + +``` +T VkSubpassInput.SubpassLoad(); +``` + +## Target Availability + +`HLSL` + + +-------------------------------------------------------------------------------- +# `struct VkSubpassInputMS` + +## Generic Parameters + +* `T` +## Methods + +* `SubpassLoad` + +-------------------------------------------------------------------------------- +# `VkSubpassInputMS.SubpassLoad` + +## Signature + +``` +T VkSubpassInputMS.SubpassLoad(int sampleIndex); +``` + +## Target Availability + +`HLSL` + +## Parameters + +* `sampleIndex` diff --git a/slang.h b/slang.h index e0975c853..f0abc135a 100644 --- a/slang.h +++ b/slang.h @@ -2959,6 +2959,15 @@ namespace slang } }; + typedef uint32_t CompileStdLibFlags; + struct CompileStdLibFlag + { + enum Enum : CompileStdLibFlags + { + WriteDocumentation = 0x1, + }; + }; + typedef ISlangBlob IBlob; struct IComponentType; @@ -3125,9 +3134,10 @@ namespace slang /** Compile from (embedded source) the StdLib on the session. Will return a failure if there is already a StdLib available - NOTE! API is experimental and not ready for production code + NOTE! API is experimental and not ready for production code + @param flags to control compilation */ - virtual SLANG_NO_THROW SlangResult SLANG_MCALL compileStdLib() = 0; + virtual SLANG_NO_THROW SlangResult SLANG_MCALL compileStdLib(CompileStdLibFlags flags) = 0; /** Load the StdLib. Currently loads modules from the file system. @param stdLib Start address of the serialized stdlib diff --git a/source/core/slang-list.h b/source/core/slang-list.h index 42820b492..08d9aa773 100644 --- a/source/core/slang-list.h +++ b/source/core/slang-list.h @@ -30,6 +30,8 @@ namespace Slang static const Index kInitialCount = 16; public: + typedef List ThisType; + List() : m_buffer(nullptr), m_count(0), m_capacity(0) { @@ -185,6 +187,28 @@ namespace Slang const T* getBuffer() const { return m_buffer; } T* getBuffer() { return m_buffer; } + bool operator==(const ThisType& rhs) const + { + if (&rhs == this) + { + return true; + } + const Index count = getCount(); + if (count != rhs.getCount()) + { + return false; + } + for (Index i = 0; i < count; ++i) + { + if ((*this)[i] != rhs[i]) + { + return false; + } + } + return true; + } + SLANG_FORCE_INLINE bool operator!=(const ThisType& rhs) const { return !(*this == rhs); } + void insert(Index idx, const T& val) { insertRange(idx, &val, 1); } void insertRange(Index idx, const T* vals, Index n) diff --git a/source/slang/core.meta.slang b/source/slang/core.meta.slang index 39ee702c6..6b20dbc3b 100644 --- a/source/slang/core.meta.slang +++ b/source/slang/core.meta.slang @@ -27,12 +27,12 @@ syntax globallycoherent : GloballyCoherentModifier; /// syntax pervertex : PerVertexModifier; -// A type that can be used as an operand for builtins +/// A type that can be used as an operand for builtins [sealed] [builtin] interface __BuiltinType {} -// A type that can be used for arithmetic operations +/// A type that can be used for arithmetic operations [sealed] [builtin] interface __BuiltinArithmeticType : __BuiltinType @@ -41,28 +41,28 @@ interface __BuiltinArithmeticType : __BuiltinType __init(int value); } - /// A type that can be used for logical/bitwsie operations +/// A type that can be used for logical/bitwise operations [sealed] [builtin] interface __BuiltinLogicalType : __BuiltinType {} -// A type that logically has a sign (positive/negative/zero) +/// A type that logically has a sign (positive/negative/zero) [sealed] [builtin] interface __BuiltinSignedArithmeticType : __BuiltinArithmeticType {} -// A type that can represent integers +/// A type that can represent integers [sealed] [builtin] interface __BuiltinIntegerType : __BuiltinArithmeticType {} -// A type that can represent non-integers +/// A type that can represent non-integers [sealed] [builtin] interface __BuiltinRealType : __BuiltinSignedArithmeticType {} -// A type that uses a floating-point representation +/// A type that uses a floating-point representation [sealed] [builtin] interface __BuiltinFloatingPointType : __BuiltinRealType @@ -74,6 +74,8 @@ interface __BuiltinFloatingPointType : __BuiltinRealType static This getPi(); } +//@ hidden: + // A type resulting from an `enum` declaration. [builtin] __magic_type(EnumTypeType) @@ -406,6 +408,8 @@ for (int tt = 0; tt < kTypeCount; ++tt) // Declare additional built-in generic types }}}} +//@ public: + __generic __intrinsic_type($(kIROp_ConstantBufferType)) __magic_type(ConstantBuffer) @@ -421,6 +425,8 @@ __intrinsic_type($(kIROp_ParameterBlockType)) __magic_type(ParameterBlockType) struct ParameterBlock {} +//@ hidden: + ${{{{ static const char* kComponentNames[]{ "x", "y", "z", "w" }; @@ -575,6 +581,8 @@ ${{{{ }}}} +//@ public: + /// Sampling state for filtered texture fetches. __magic_type(SamplerState, $(int(SamplerStateFlavor::SamplerState))) __intrinsic_type($(kIROp_SamplerStateType)) @@ -1554,6 +1562,11 @@ for (int tt = 0; tt < kBaseTextureTypeCount; ++tt) } } +}}}} + +//@ hidden: + +${{{{ for (auto op : intrinsicUnaryOps) { @@ -1933,6 +1946,8 @@ ${{{{ }}}} +//@ public: + // Bit cast __generic [__unsafeForceInlineEarly] @@ -1941,12 +1956,13 @@ T bit_cast(U value); // Specialized function +/// Given a string returns an integer hash of that string. __intrinsic_op int getStringHash(String string); -// Use will produce a syntax error in downstream compiler -// Useful for testing diagnostics around compilation errors of downstream compiler -// It 'returns' an int so can be used in expressions without the front end complaining. +/// Use will produce a syntax error in downstream compiler +/// Useful for testing diagnostics around compilation errors of downstream compiler +/// It 'returns' an int so can be used in expressions without the front end complaining. __target_intrinsic(hlsl, " @ ") __target_intrinsic(glsl, " @ ") __target_intrinsic(cuda, " @ ") @@ -1967,6 +1983,8 @@ void endInvocationInterlock() {} // Operators to apply to `enum` types +//@ hidden: + __generic __intrinsic_op($(kIROp_Eql)) bool operator==(E left, E right); @@ -1975,6 +1993,8 @@ __generic __intrinsic_op($(kIROp_Neq)) bool operator!=(E left, E right); +//@ public: + // Binding Attributes __attributeTarget(DeclBase) diff --git a/source/slang/slang-api.cpp b/source/slang/slang-api.cpp index 251a3980b..bb0e2e174 100644 --- a/source/slang/slang-api.cpp +++ b/source/slang/slang-api.cpp @@ -98,7 +98,7 @@ SLANG_API SlangResult slang_createGlobalSession( if (tryLoadStdLibFromCache(globalSession, cacheFilename, dllTimestamp) != SLANG_OK) { // Compile std lib from embeded source. - SLANG_RETURN_ON_FAIL(globalSession->compileStdLib()); + SLANG_RETURN_ON_FAIL(globalSession->compileStdLib(0)); // Store the compiled stdlib to cache file. trySaveStdLibToCache(globalSession, cacheFilename, dllTimestamp); diff --git a/source/slang/slang-ast-print.cpp b/source/slang/slang-ast-print.cpp index 29c034659..3ffb481c6 100644 --- a/source/slang/slang-ast-print.cpp +++ b/source/slang/slang-ast-print.cpp @@ -34,29 +34,40 @@ void ASTPrinter::addVal(Val* val) val->toText(m_builder); } -void ASTPrinter::_addDeclName(Decl* decl) +/* static */void ASTPrinter::appendDeclName(Decl* decl, StringBuilder& out) { if (as(decl)) { - m_builder << "init"; + out << "init"; } else if (as(decl)) { - m_builder << "subscript"; + out << "subscript"; } else { - m_builder << getText(decl->getName()); + out << getText(decl->getName()); } } +void ASTPrinter::_addDeclName(Decl* decl) +{ + appendDeclName(decl, m_builder); +} + +void ASTPrinter::addOverridableDeclPath(const DeclRef& declRef) +{ + ScopePart scopePart(this, Part::Type::DeclPath); + _addDeclPathRec(declRef, 0); +} + void ASTPrinter::addDeclPath(const DeclRef& declRef) { ScopePart scopePart(this, Part::Type::DeclPath); - _addDeclPathRec(declRef); + _addDeclPathRec(declRef, 1); } -void ASTPrinter::_addDeclPathRec(const DeclRef& declRef) +void ASTPrinter::_addDeclPathRec(const DeclRef& declRef, Index depth) { auto& sb = m_builder; @@ -74,8 +85,48 @@ void ASTPrinter::_addDeclPathRec(const DeclRef& declRef) // Depending on what the parent is, we may want to format things specially if (auto aggTypeDeclRef = parentDeclRef.as()) { - _addDeclPathRec(aggTypeDeclRef); - sb << "."; + _addDeclPathRec(aggTypeDeclRef, depth + 1); + sb << toSlice("."); + } + else if (auto namespaceDeclRef = parentDeclRef.as()) + { + _addDeclPathRec(namespaceDeclRef, depth + 1); + // Hmm, it could be argued that we follow the . as seen in AggType as is followed in some other languages + // like Java. + // That it is useful to have a distinction between something that is a member/method and something that is + // in a scope (such as a namespace), and is something that has returned to later languages probably for that + // reason (Slang accepts . or ::). So for now this is follows the :: convention. + // + // It could be argued them that the previous '.' use should vary depending on that distinction. + + sb << toSlice("::"); + } + else if (auto extensionDeclRef = parentDeclRef.as()) + { + ExtensionDecl* extensionDecl = as(parentDeclRef.getDecl()); + Type* type = extensionDecl->targetType.type; + addType(type); + sb << toSlice("."); + } + else if (auto moduleDecl = as(parentDeclRef.getDecl())) + { + Name* moduleName = moduleDecl->getName(); + if ((m_optionFlags & OptionFlag::ModuleName) && moduleName) + { + // Use to say in modules scope + sb << moduleName->text << toSlice("::"); + } + } + + // If this decl is the module, we only output it's name if that feature is enabled + if (ModuleDecl* moduleDecl = as(declRef.getDecl())) + { + Name* moduleName = moduleDecl->getName(); + if ((m_optionFlags & OptionFlag::ModuleName) && moduleName) + { + sb << moduleName->text; + } + return; } _addDeclName(declRef.getDecl()); @@ -85,41 +136,91 @@ void ASTPrinter::_addDeclPathRec(const DeclRef& declRef) if (parentGenericDeclRef) { auto genSubst = as(declRef.substitutions.substitutions); - SLANG_RELEASE_ASSERT(genSubst); - SLANG_RELEASE_ASSERT(genSubst->genericDecl == parentGenericDeclRef.getDecl()); + if (genSubst) + { + SLANG_RELEASE_ASSERT(genSubst); + SLANG_RELEASE_ASSERT(genSubst->genericDecl == parentGenericDeclRef.getDecl()); - // If the name we printed previously was an operator - // that ends with `<`, then immediately printing the - // generic arguments inside `<...>` may cause it to - // be hard to parse the operator name visually. - // - // We thus include a space between the declaration name - // and its generic arguments in this case. - // - if (sb.endsWith("<")) + // If the name we printed previously was an operator + // that ends with `<`, then immediately printing the + // generic arguments inside `<...>` may cause it to + // be hard to parse the operator name visually. + // + // We thus include a space between the declaration name + // and its generic arguments in this case. + // + if (sb.endsWith("<")) + { + sb << " "; + } + + sb << "<"; + bool first = true; + for (auto arg : genSubst->args) + { + // When printing the representation of a specialized + // generic declaration we don't want to include the + // argument values for subtype witnesses since these + // do not correspond to parameters of the generic + // as the user sees it. + // + if (as(arg)) + continue; + + if (!first) sb << ", "; + addVal(arg); + first = false; + } + sb << ">"; + } + else if (depth > 0) { - sb << " "; + // Write out the generic parameters (only if the depth allows it) + addGenericParams(parentGenericDeclRef); } + } +} - sb << "<"; - bool first = true; - for (auto arg : genSubst->args) +void ASTPrinter::addGenericParams(const DeclRef& genericDeclRef) +{ + auto& sb = m_builder; + + sb << "<"; + bool first = true; + for (auto paramDeclRef : getMembers(genericDeclRef)) + { + if (auto genericTypeParam = paramDeclRef.as()) { - // When printing the representation of a specialized - // generic declaration we don't want to include the - // argument values for subtype witnesses since these - // do not correspond to parameters of the generic - // as the user sees it. - // - if (as(arg)) - continue; + if (!first) sb << ", "; + first = false; + { + ScopePart scopePart(this, Part::Type::GenericParamType); + sb << getText(genericTypeParam.getName()); + } + } + else if (auto genericValParam = paramDeclRef.as()) + { if (!first) sb << ", "; - addVal(arg); first = false; + + { + ScopePart scopePart(this, Part::Type::GenericParamValue); + sb << getText(genericValParam.getName()); + } + + sb << ":"; + + { + ScopePart scopePart(this, Part::Type::GenericParamValueType); + addType(getType(m_astBuilder, genericValParam)); + } + } + else + { } - sb << ">"; } + sb << ">"; } void ASTPrinter::addDeclParams(const DeclRef& declRef) @@ -140,6 +241,29 @@ void ASTPrinter::addDeclParams(const DeclRef& declRef) { ScopePart scopePart(this, Part::Type::ParamType); + + // Seems these apply to parameters/VarDeclBase and are not part of the 'type' + // but seems more appropriate to put in the Type Part + + if (paramDecl->hasModifier()) + { + sb << toSlice("inout "); + } + else if (paramDecl->hasModifier()) + { + sb << toSlice("out "); + } + else if (paramDecl->hasModifier()) + { + sb << toSlice("in "); + } + + // And this to params/variables (not the type) + if (paramDecl->hasModifier()) + { + sb << toSlice("const "); + } + addType(getType(m_astBuilder, paramDeclRef)); } @@ -161,42 +285,7 @@ void ASTPrinter::addDeclParams(const DeclRef& declRef) } else if (auto genericDeclRef = declRef.as()) { - sb << "<"; - bool first = true; - for (auto paramDeclRef : getMembers(genericDeclRef)) - { - if (auto genericTypeParam = paramDeclRef.as()) - { - if (!first) sb << ", "; - first = false; - - { - ScopePart scopePart(this, Part::Type::GenericParamType); - sb << getText(genericTypeParam.getName()); - } - } - else if (auto genericValParam = paramDeclRef.as()) - { - if (!first) sb << ", "; - first = false; - - { - ScopePart scopePart(this, Part::Type::GenericParamValue); - sb << getText(genericValParam.getName()); - } - - sb << ":"; - - { - ScopePart scopePart(this, Part::Type::GenericParamValueType); - addType(getType(m_astBuilder, genericValParam)); - } - } - else - { - } - } - sb << ">"; + addGenericParams(genericDeclRef); addDeclParams(DeclRef(getInner(genericDeclRef), genericDeclRef.substitutions)); } @@ -265,7 +354,7 @@ void ASTPrinter::addDeclResultType(const DeclRef& inDeclRef) return index >= 0 ? getPart(slice, parts[index]) : UnownedStringSlice(); } -UnownedStringSlice ASTPrinter::getPart(Part::Type partType) const +UnownedStringSlice ASTPrinter::getPartSlice(Part::Type partType) const { return m_parts ? getPart(partType, getSlice(), *m_parts) : UnownedStringSlice(); } diff --git a/source/slang/slang-ast-print.h b/source/slang/slang-ast-print.h index 7fb818898..1c4c20e28 100644 --- a/source/slang/slang-ast-print.h +++ b/source/slang/slang-ast-print.h @@ -15,7 +15,8 @@ public: { enum Enum : OptionFlags { - ParamNames = 0x1, ///< If set will output parameter names + ParamNames = 0x01, ///< If set will output parameter names + ModuleName = 0x02, ///< Writes out module names }; }; @@ -112,6 +113,9 @@ public: /// Add the path to the declaration including the declaration name void addDeclPath(const DeclRef& declRef); + /// Add the path such that it encapsulates all overridable decls (ie is without terminal generic parameters) + void addOverridableDeclPath(const DeclRef& declRef); + /// Add just the parameters from a declaration. /// Will output the generic parameters (if it's a generic) in <> before the parameters () void addDeclParams(const DeclRef& declRef); @@ -126,15 +130,20 @@ public: /// Add the signature for the decl void addDeclSignature(const DeclRef& declRef); + /// Add generic parameters + void addGenericParams(const DeclRef& genericDeclRef); + /// Get the specified part type. Returns empty slice if not found - UnownedStringSlice getPart(Part::Type partType) const; + UnownedStringSlice getPartSlice(Part::Type partType) const; /// Get the slice for a part UnownedStringSlice getPartSlice(const Part& part) const { return getPart(getSlice(), part); } - + /// Gets the specified part type static UnownedStringSlice getPart(const UnownedStringSlice& slice, const Part& part) { return UnownedStringSlice(slice.begin() + part.start, slice.begin() + part.end); } static UnownedStringSlice getPart(Part::Type partType, const UnownedStringSlice& slice, const List& parts); + static void appendDeclName(Decl* decl, StringBuilder& out); + /// Ctor ASTPrinter(ASTBuilder* astBuilder, OptionFlags optionFlags = 0, List* parts = nullptr): m_astBuilder(astBuilder), @@ -148,7 +157,7 @@ public: protected: - void _addDeclPathRec(const DeclRef& declRef); + void _addDeclPathRec(const DeclRef& declRef, Index depth); void _addDeclName(Decl* decl); OptionFlags m_optionFlags; ///< Flags controlling output diff --git a/source/slang/slang-compiler.h b/source/slang/slang-compiler.h index 5eedb4db6..0eb6f992d 100755 --- a/source/slang/slang-compiler.h +++ b/source/slang/slang-compiler.h @@ -2176,7 +2176,7 @@ namespace Slang SLANG_NO_THROW SlangResult SLANG_MCALL checkCompileTargetSupport(SlangCompileTarget target) override; SLANG_NO_THROW SlangResult SLANG_MCALL checkPassThroughSupport(SlangPassThrough passThrough) override; - SLANG_NO_THROW SlangResult SLANG_MCALL compileStdLib() override; + SLANG_NO_THROW SlangResult SLANG_MCALL compileStdLib(slang::CompileStdLibFlags flags) override; SLANG_NO_THROW SlangResult SLANG_MCALL loadStdLib(const void* stdLib, size_t stdLibSizeInBytes) override; SLANG_NO_THROW SlangResult SLANG_MCALL saveStdLib(SlangArchiveType archiveType, ISlangBlob** outBlob) override; diff --git a/source/slang/slang-doc-extractor.cpp b/source/slang/slang-doc-extractor.cpp index f44257877..3951e4977 100644 --- a/source/slang/slang-doc-extractor.cpp +++ b/source/slang/slang-doc-extractor.cpp @@ -322,6 +322,7 @@ Index DocMarkupExtractor::_findStartIndex(const FindInfo& info, Location locatio switch (tok.type) { + case TokenType::LBrace: case TokenType::LBracket: case TokenType::LParent: case TokenType::OpLess: @@ -396,11 +397,11 @@ Index DocMarkupExtractor::_findStartIndex(const FindInfo& info, Location locatio { return i + 1; } - } - if (location == Location::Before) - { - return -1; + if (location == Location::Before) + { + return -1; + } } break; @@ -636,6 +637,9 @@ SlangResult DocMarkupExtractor::_findMarkup(const FindInfo& info, SearchStyle se return _findMarkup(info, locs, SLANG_COUNT_OF(locs), out); } case SearchStyle::Before: + { + return _findMarkup(info, Location::Before, out); + } case SearchStyle::Function: { return _findMarkup(info, Location::Before, out); @@ -653,6 +657,70 @@ SlangResult DocMarkupExtractor::_findMarkup(const FindInfo& info, SearchStyle se } } + +static void _calcLineVisibility(SourceView* sourceView, const TokenList& toks, List& outLineVisibility) +{ + SourceFile* sourceFile = sourceView->getSourceFile(); + const auto& lineOffsets = sourceFile->getLineBreakOffsets(); + + outLineVisibility.setCount(lineOffsets.getCount() + 1); + + MarkupVisibility lastVisibility = MarkupVisibility::Public; + Index lastLine = 0; + + for (const auto& tok : toks) + { + if (tok.type == TokenType::LineComment) + { + UnownedStringSlice contents = tok.getContent(); + + MarkupVisibility newVisibility = lastVisibility; + + // Distinct from other markup + if (contents.startsWith(toSlice("//@"))) + { + UnownedStringSlice access = contents.tail(3).trim(); + if (access == "hidden:" || access == "private:") + { + newVisibility = MarkupVisibility::Hidden; + } + else if (access == "internal:") + { + newVisibility = MarkupVisibility::Internal; + } + else if (access == "public:") + { + newVisibility = MarkupVisibility::Public; + } + } + + if (newVisibility != lastVisibility) + { + // Work up the line it's on + const int offset = sourceView->getRange().getOffset(tok.loc); + Index line = sourceFile->calcLineIndexFromOffset(offset); + + // Fill in the span + for (Index i = lastLine; i < line; ++i) + { + outLineVisibility[i] = lastVisibility; + } + + // Record the new access and where we are up to + lastLine = line; + lastVisibility = newVisibility; + } + } + } + + // Fill in the remaining + for (Index i = lastLine; i < outLineVisibility.getCount(); ++ i) + { + outLineVisibility[i] = lastVisibility; + } +} + + SlangResult DocMarkupExtractor::extract(const SearchItemInput* inputs, Index inputCount, SourceManager* sourceManager, DiagnosticSink* sink, List& outViews, List& out) { struct Entry @@ -726,8 +794,10 @@ SlangResult DocMarkupExtractor::extract(const SearchItemInput* inputs, Index inp { TokenList tokens; + List lineVisibility; + + MemoryArena memoryArena(4096); - MemoryArena memoryArena; RootNamePool rootNamePool; NamePool namePool; namePool.setRootNamePool(&rootNamePool); @@ -746,6 +816,7 @@ SlangResult DocMarkupExtractor::extract(const SearchItemInput* inputs, Index inp dst.viewIndex = -1; dst.inputIndex = entry.inputIndex; + dst.visibilty = MarkupVisibility::Public; // If there isn't a mechanism to search with, just move on if (entry.searchStyle == SearchStyle::None) @@ -767,6 +838,10 @@ SlangResult DocMarkupExtractor::extract(const SearchItemInput* inputs, Index inp // Lex everything tokens = lexer.lexAllTokens(); + + // Let's work out the access + + _calcLineVisibility(sourceView, tokens, lineVisibility); } dst.viewIndex = viewIndex; @@ -781,6 +856,8 @@ SlangResult DocMarkupExtractor::extract(const SearchItemInput* inputs, Index inp SourceFile* sourceFile = sourceView->getSourceFile(); const Index lineIndex = sourceFile->calcLineIndexFromOffset(int(offset)); + dst.visibilty = lineVisibility[lineIndex]; + // Okay, lets find the token index with a binary chop Index tokenIndex = _findTokenIndex(loc, tokens.m_tokens.getBuffer(), tokens.m_tokens.getCount()); if (tokenIndex >= 0 && lineIndex >= 0) @@ -902,6 +979,7 @@ SlangResult DocMarkupExtractor::extract(ModuleDecl* moduleDecl, SourceManager* s // Add to the documentation DocMarkup::Entry& docEntry = outDoc->addEntry(decl); docEntry.m_markup = outputItem.text; + docEntry.m_visibility = outputItem.visibilty; } } diff --git a/source/slang/slang-doc-extractor.h b/source/slang/slang-doc-extractor.h index ca03fc60b..7a33b390a 100644 --- a/source/slang/slang-doc-extractor.h +++ b/source/slang/slang-doc-extractor.h @@ -7,14 +7,22 @@ namespace Slang { +enum class MarkupVisibility : uint8_t +{ + Public, ///< Always available + Internal, ///< Can be available in more verbose 'internal' documentation + Hidden, ///< Not generally available +}; + /* Holds the documentation markup that is associated with each node (typically a decl) from a module */ class DocMarkup : public RefObject { public: struct Entry { - NodeBase* m_node; ///< The node this documentation is associated with - String m_markup; ///< The raw contents of of markup associated with the decoration + NodeBase* m_node; ///< The node this documentation is associated with + String m_markup; ///< The raw contents of of markup associated with the decoration + MarkupVisibility m_visibility = MarkupVisibility::Public; ///< How visible this decl is }; /// Adds an entry, returns the reference to pre-existing node if there is one @@ -149,6 +157,7 @@ public: Index viewIndex; ///< Index into the array of views on the output Index inputIndex; ///< The index to this item in the input String text; ///< The found text + MarkupVisibility visibilty; ///< Visibility of the item }; struct FindInfo diff --git a/source/slang/slang-doc-mark-down.cpp b/source/slang/slang-doc-mark-down.cpp index 82de7052e..384759474 100644 --- a/source/slang/slang-doc-mark-down.cpp +++ b/source/slang/slang-doc-mark-down.cpp @@ -4,9 +4,49 @@ #include "../core/slang-string-util.h" #include "slang-ast-builder.h" +#include "slang-lookup.h" namespace Slang { + +struct DocMarkDownWriter::StringListSet +{ + Index add(const HashSet& set) + { + // -1 means empty, which we don't explicitly store + Index index = -1; + if (set.Count()) + { + List values; + for (auto& value : set) + { + values.add(value); + } + // Sort so that can be compared for uniqueness + values.sort(); + + index = m_uniqueValues.indexOf(values); + if (index < 0) + { + index = m_uniqueValues.getCount(); + m_uniqueValues.add(values); + } + } + m_map.add(index); + return index; + } + + Index getValueIndex(Index index) const { return m_map[index]; } + List& getValuesAt(Index valueIndex) { return m_uniqueValues[valueIndex]; } + const List>& getUniqueValues() const { return m_uniqueValues; } + + StringListSet() {} + +protected: + List m_map; + List> m_uniqueValues; +}; + /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! DocMarkDownWriter !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ template @@ -51,39 +91,141 @@ static void _appendAsSingleLine(const UnownedStringSlice& in, StringBuilder& out StringUtil::join(lines.getBuffer(), lines.getCount(), ' ', out); } -void DocMarkDownWriter::_appendAsBullets(const List& in) +void DocMarkDownWriter::_appendAsBullets(const List& values, char wrapChar) { auto& out = m_builder; - for (auto decl : in) + for (const auto& value : values) { - DocMarkup::Entry* paramEntry = m_markup->getEntry(decl); - out << "* "; - Name* name = decl->getName(); - if (name) + const String& name = value.name; + if (name.getLength()) { - out << toSlice("_") << name->text << toSlice("_ "); + if (wrapChar) + { + out.appendChar(wrapChar); + out << name; + out.appendChar(wrapChar); + } + else + { + out << name; + } } - if (paramEntry) + if (value.text.getLength()) { + out.appendChar(' '); + // Hmm, we'll want to make something multiline into a single line - _appendAsSingleLine(paramEntry->m_markup.getUnownedSlice(), out); + _appendAsSingleLine(value.text.getUnownedSlice(), out); } out << "\n"; } +} - out << toSlice("\n"); +void DocMarkDownWriter::_appendAsBullets(const List& values, char wrapChar) +{ + auto& out = m_builder; + for (const auto& value : values) + { + out << "* "; + + if (value.getLength()) + { + if (wrapChar) + { + out.appendChar(wrapChar); + out << value; + out.appendChar(wrapChar); + + } + else + { + out << value; + } + } + out << "\n"; + } } -template -void DocMarkDownWriter::_appendAsBullets(FilteredMemberList& list) +String DocMarkDownWriter::_getName(Decl* decl) { - List decls; - _toList(list, decls); - _appendAsBullets(decls); + StringBuilder buf; + ASTPrinter::appendDeclName(decl, buf); + return buf.ProduceString(); +} + +String DocMarkDownWriter::_getName(InheritanceDecl* decl) +{ + StringBuilder buf; + buf.Clear(); + buf << decl->base; + return buf.ProduceString(); +} + +DocMarkDownWriter::NameAndText DocMarkDownWriter::_getNameAndText(DocMarkup::Entry* entry, Decl* decl) +{ + NameAndText nameAndText; + + nameAndText.name = _getName(decl); + + // We could extract different text here, but for now just do all markup + if (entry) + { + // For now we'll just use all markup, but really we need something more sophisticated here + nameAndText.text = entry->m_markup; + } + + return nameAndText; +} + +DocMarkDownWriter::NameAndText DocMarkDownWriter::_getNameAndText(Decl* decl) +{ + DocMarkup::Entry* entry = m_markup->getEntry(decl); + return _getNameAndText(entry, decl); +} + +List DocMarkDownWriter::_getAsNameAndTextList(const List& in) +{ + List out; + for (auto decl : in) + { + out.add(_getNameAndText(decl)); + } + return out; +} + +List DocMarkDownWriter::_getAsStringList(const List& in) +{ + List strings; + for (auto decl : in) + { + strings.add(_getName(decl)); + } + return strings; +} + +void DocMarkDownWriter::_appendCommaList(const List& strings, char wrapChar) +{ + for (Index i = 0; i < strings.getCount(); ++i) + { + if (i > 0) + { + m_builder << toSlice(", "); + } + if (wrapChar) + { + m_builder.appendChar(wrapChar); + m_builder << strings[i]; + m_builder.appendChar(wrapChar); + } + else + { + m_builder << strings[i]; + } + } } /* static */void DocMarkDownWriter::getSignature(const List& parts, Signature& outSig) @@ -149,73 +291,81 @@ void DocMarkDownWriter::writeVar(const DocMarkup::Entry& entry, VarDecl* varDecl out << toSlice("```\n"); out << varDecl->type << toSlice(" ") << varDecl << toSlice("\n"); - out << toSlice("```\n"); + out << toSlice("```\n\n"); writeDescription(entry); } -void DocMarkDownWriter::writeCallable(const DocMarkup::Entry& entry, CallableDecl* callableDecl) +void DocMarkDownWriter::writeSignature(CallableDecl* callableDecl) { - writePreamble(entry); - auto& out = m_builder; List parts; + ASTPrinter printer(m_astBuilder, ASTPrinter::OptionFlag::ParamNames, &parts); - - GenericDecl* genericDecl = as(callableDecl->parentDecl); - - if (genericDecl) - { - printer.addDeclSignature(DeclRef(genericDecl, nullptr)); - } - else - { - printer.addDeclSignature(DeclRef(callableDecl, nullptr)); - } + printer.addDeclSignature(DeclRef(callableDecl, nullptr)); Signature signature; getSignature(parts, signature); const Index paramCount = signature.params.getCount(); - // Output the signature - { - // Extract the name - out << toSlice("# ") << printer.getPartSlice(signature.name) << toSlice("\n\n"); - - out << toSlice("## Signature \n"); - out << toSlice("```\n"); - out << printer.getPartSlice(signature.returnType) << toSlice(" "); + { + // Some types (like constructors say) don't have any return type, so check before outputting + const UnownedStringSlice returnType = printer.getPartSlice(signature.returnType); + if (returnType.getLength() > 0) + { + out << returnType << toSlice(" "); + } + } - out << printer.getPartSlice(signature.name); + out << printer.getPartSlice(signature.name); - if (signature.genericParams.getCount()) +#if 0 + if (signature.genericParams.getCount()) + { + out << toSlice("<"); + const Index count = signature.genericParams.getCount(); + for (Index i = 0; i < count; ++i) { - out << toSlice("<"); - const Index count = signature.genericParams.getCount(); - for (Index i = 0; i < count; ++i) + const auto& genericParam = signature.genericParams[i]; + if (i > 0) { - const auto& genericParam = signature.genericParams[i]; - if (i > 0) - { - out << toSlice(", "); - } - out << printer.getPartSlice(genericParam.name); + out << toSlice(", "); + } + out << printer.getPartSlice(genericParam.name); - if (genericParam.type.type != Part::Type::None) - { - out << toSlice(" : "); - out << printer.getPartSlice(genericParam.type); - } + if (genericParam.type.type != Part::Type::None) + { + out << toSlice(" : "); + out << printer.getPartSlice(genericParam.type); } - out << toSlice(">"); } + out << toSlice(">"); + } +#endif - if (paramCount > 0) + switch (paramCount) + { + case 0: { + // Has no parameters + out << toSlice("();\n"); + break; + } + case 1: + { + // Place all on single line + out.appendChar('('); + const auto& param = signature.params[0]; + out << printer.getPartSlice(param.first) << toSlice(" ") << printer.getPartSlice(param.second); + out << ");\n"; + break; + } + default: + { + // Put each parameter on a line on it's own out << toSlice("(\n"); - StringBuilder line; for (Index i = 0; i < paramCount; ++i) { @@ -244,45 +394,371 @@ void DocMarkDownWriter::writeCallable(const DocMarkup::Entry& entry, CallableDec } out << ");\n"; + break; + } + } +} + +List DocMarkDownWriter::_getUniqueParams(const List& decls) +{ + List out; + + Dictionary nameDict; + + for (auto decl : decls) + { + Name* name = decl->getName(); + if (!name) + { + continue; + } + + Index index = nameDict.GetOrAddValue(name, out.getCount()); + + if (index >= out.getCount()) + { + out.add(NameAndText{ getText(name), String() }); + } + + NameAndText& nameAndMarkup = out[index]; + if (nameAndMarkup.text.getLength() > 0) + { + continue; + } + + auto entry = m_markup->getEntry(decl); + if (entry && entry->m_markup.getLength()) + { + nameAndMarkup.text = entry->m_markup; + } + } + + return out; +} + +static void _addRequirements(Decl* decl, HashSet& outRequirements) +{ + StringBuilder buf; + + if (auto spirvRequiredModifier = decl->findModifier()) + { + buf.Clear(); + buf << "SPIR-V "; + spirvRequiredModifier->version.append(buf); + outRequirements.Add(buf); + } + + if (auto glslRequiredModifier = decl->findModifier()) + { + buf.Clear(); + buf << "GLSL" << glslRequiredModifier->versionNumberToken.getContent(); + outRequirements.Add(buf); + } + + if (auto cudaSMVersionModifier = decl->findModifier()) + { + buf.Clear(); + buf << "CUDA SM "; + cudaSMVersionModifier->version.append(buf); + outRequirements.Add(buf); + } + + if (auto extensionModifier = decl->findModifier()) + { + buf.Clear(); + buf << "GLSL " << extensionModifier->extensionNameToken.getContent(); + outRequirements.Add(buf); + } + + if (auto requiresNVAPIAttribute = decl->findModifier()) + { + outRequirements.Add("NVAPI"); + } +} + +void DocMarkDownWriter::_maybeAppendSet(const UnownedStringSlice& title, const StringListSet& set) +{ + auto& out = m_builder; + + const auto& uniqueValues = set.getUniqueValues(); + + const Index uniqueCount = uniqueValues.getCount(); + if (uniqueCount > 0 && uniqueValues[0].getCount() > 0) + { + out << title; + if (uniqueCount > 1) + { + for (Index i = 0; i < uniqueCount; ++i) + { + out << (i + 1) << (". "); + _appendCommaList(uniqueValues[i], '`'); + out << toSlice("\n"); + } } else { - out << toSlice("();\n"); + _appendCommaList(uniqueValues[0], '`'); + out << toSlice("\n"); } + out << toSlice("\n"); + } +} - out << "```\n\n"; +static Decl* _getSameNameDecl(Decl* decl) +{ + auto parentDecl = decl->parentDecl; + + // Sanity check: there should always be a parent declaration. + // + SLANG_ASSERT(parentDecl); + if (!parentDecl) return nullptr; + + // If the declaration is the "inner" declaration of a generic, + // then we actually want to look one level up, because the + // peers/siblings of the declaration will belong to the same + // parent as the generic, not to the generic. + // + if (auto genericParentDecl = as(parentDecl)) + { + // Note: we need to check here to be sure `newDecl` + // is the "inner" declaration and not one of the + // generic parameters, or else we will end up + // checking them at the wrong scope. + // + if (decl == genericParentDecl->inner) + { + decl = parentDecl; + } } + return decl; +} + +static bool _isFirstOverridden(Decl* decl) +{ + decl = _getSameNameDecl(decl); + + ContainerDecl* parentDecl = decl->parentDecl; + + // Make sure we have the member dictionary. + buildMemberDictionary(parentDecl); + + Name* declName = decl->getName(); + if (declName) { - // The parameters, in order - List params; + Decl** firstDeclPtr = parentDecl->memberDictionary.TryGetValue(declName); + return (firstDeclPtr && *firstDeclPtr == decl) || (firstDeclPtr == nullptr); + } - if (genericDecl) + return false; +} + +void DocMarkDownWriter::writeCallableOverridable(const DocMarkup::Entry& entry, CallableDecl* callableDecl) +{ + auto& out = m_builder; + + writePreamble(entry); + + { + // Output the overridable path (ie without terminal generic parameters) + ASTPrinter printer(m_astBuilder); + printer.addOverridableDeclPath(DeclRef(callableDecl, nullptr)); + // Extract the name + out << toSlice("# `") << printer.getStringBuilder() << toSlice("`\n\n"); + } + + writeDescription(entry); + + List sigs; + { + Decl* sameNameDecl = _getSameNameDecl(callableDecl); + + for (Decl* curDecl = sameNameDecl; curDecl; curDecl = curDecl->nextInContainerWithSameName) + { + CallableDecl* sig = nullptr; + if (GenericDecl* genericDecl = as(curDecl)) + { + sig = as(genericDecl->inner); + } + else + { + sig = as(curDecl); + } + + if (!sig) + { + continue; + } + + // Want to add only the primary sig + if (sig->primaryDecl == nullptr || sig->primaryDecl == sig) + { + sigs.add(sig); + } + } + + // Lets put back into source order + sigs.sort([](CallableDecl* a, CallableDecl* b) -> bool { return a->loc.getRaw() < b->loc.getRaw(); }); + } + + // Set of sets of requirements, holds index map from addition to the set entry + StringListSet requirementsSetSet; + + // Similarly for targets + StringListSet targetSetSet; + + // We want to determine the unique signature, and then the requirements for the signature + { + for (Index i = 0; i < sigs.getCount(); ++i) { - for (Decl* decl : genericDecl->members) + CallableDecl* sig = sigs[i]; + // Add the requirements for all the different versions { - if (as(decl) || - as(decl)) + HashSet requirementsSet; + HashSet targetSet; + for (CallableDecl* curSig = sig; curSig; curSig = curSig->nextDecl) { - params.add(decl); + _addRequirements(sig, requirementsSet); + + // Handle Target info + + for (auto targetIntrinsic : sig->getModifiersOfType()) + { + targetSet.Add(String(targetIntrinsic->targetToken.getContent()).toUpper()); + } + for (auto specializedForTarget : sig->getModifiersOfType()) + { + targetSet.Add(String(specializedForTarget->targetToken.getContent()).toUpper()); + } } + + requirementsSetSet.add(requirementsSet); + + // TODO(JS): This really isn't right, we ideally have markup that made hlsl availability explicit + // We *assume* that we have 'hlsl' for now + targetSet.Add(String("HLSL")); + targetSetSet.add(targetSet); } } + } + + // Output the signature + { + out << toSlice("## Signature \n\n"); + out << toSlice("```\n"); + + Index prevRequirementsIndex = -1; + Index prevTargetIndex = -1; - for (ParamDecl* paramDecl : callableDecl->getParameters()) + const Int sigCount = sigs.getCount(); + for (Index i = 0; i < sigCount; ++i) { - params.add(paramDecl); + auto sig = sigs[i]; + + // Output if needs unique requirements + if (requirementsSetSet.getUniqueValues().getCount() > 1) + { + const Index requirementsIndex = requirementsSetSet.getValueIndex(i); + if (requirementsIndex != prevRequirementsIndex) + { + if (requirementsIndex >= 0) + { + out << toSlice("/// See Requirement ") << (requirementsIndex + 1) << toSlice("\n"); + } + else + { + out << toSlice("/// No requirements\n"); + } + prevRequirementsIndex = requirementsIndex; + } + } + + if (targetSetSet.getUniqueValues().getCount() > 1) + { + const Index targetIndex = targetSetSet.getValueIndex(i); + if (targetIndex != prevTargetIndex) + { + if (targetIndex >= 0) + { + out << toSlice("/// See Target Availability ") << (targetIndex + 1) << toSlice("\n"); + } + else + { + out << toSlice("/// All Targets\n"); + } + prevTargetIndex = targetIndex; + } + } + + writeSignature(sig); } + out << "```\n\n"; + } - if (params.getCount()) + _maybeAppendSet(toSlice("## Requirements\n\n"), requirementsSetSet); + + // Target availability + + { + const auto& uniqueValues = targetSetSet.getUniqueValues(); + if (uniqueValues.getCount() == 1 && uniqueValues[0].getCount() == 1 && uniqueValues[0][0] == "hlsl") { - out << "## Parameters\n\n"; - // We have generic params and regular parameters, in this list - _appendAsBullets(params); + // TODO(JS): + // If something is marked up for hlsl, and nothing else, that indicates it might *only* be available on hlsl, but + // we don't correctly handle that here. + + // If the only thing we have is 'hlsl' - we injected that so we'll *assume* it's available everywhere, so + // don't bother outputting. + } + else + { + _maybeAppendSet(toSlice("## Target Availability\n\n"), targetSetSet); } } - writeDescription(entry); + { + // We will use the first documentation found for each parameter type + { + List paramDecls; + List genericDecls; + for (auto sig : sigs) + { + GenericDecl* genericDecl = as(sig->parentDecl); + + // NOTE! + // Here we assume the names of generic parameters are such that they are + + // We list generic parameters, as types of parameters, if they are directly associated with this + // callable. + if (genericDecl) + { + for (Decl* decl : genericDecl->members) + { + if (as(decl) || + as(decl)) + { + genericDecls.add(decl); + } + } + } + + for (ParamDecl* paramDecl : sig->getParameters()) + { + paramDecls.add(paramDecl); + } + } + + if (paramDecls.getCount() > 0 || paramDecls.getCount() > 0) + { + out << "## Parameters\n\n"; + + // Get the unique generics + _appendAsBullets(_getUniqueParams(genericDecls), '`'); + // And parameters + _appendAsBullets(_getUniqueParams(paramDecls), '`'); + } + } + } } void DocMarkDownWriter::writeEnum(const DocMarkup::Entry& entry, EnumDecl* enumDecl) @@ -301,12 +777,55 @@ void DocMarkDownWriter::writeEnum(const DocMarkup::Entry& entry, EnumDecl* enumD out << toSlice("## Values \n\n"); - auto cases = enumDecl->getMembersOfType(); - _appendAsBullets(cases); - + _appendAsBullets(_getAsNameAndTextList(enumDecl->getMembersOfType()), '_'); + writeDescription(entry); } +void DocMarkDownWriter::_appendEscaped(const UnownedStringSlice& text) +{ + auto& out = m_builder; + + const char* start = text.begin(); + const char* cur = start; + const char*const end = text.end(); + + for (; cur < end; ++cur) + { + const char c = *cur; + + switch (c) + { + case '<': + case '>': + case '&': + case '"': + case '_': + { + // Flush if any before + if (cur > start) + { + out.append(start, cur); + } + // Prefix with the + out.appendChar('\\'); + + // Start will still include the char, for later flushing + start = cur; + break; + } + default: break; + } + } + + // Flush any remaining + if (cur > start) + { + out.append(start, cur); + } +} + + void DocMarkDownWriter::_appendDerivedFrom(const UnownedStringSlice& prefix, AggTypeDeclBase* aggTypeDecl) { auto& out = m_builder; @@ -330,43 +849,52 @@ void DocMarkDownWriter::_appendDerivedFrom(const UnownedStringSlice& prefix, Agg } } -void DocMarkDownWriter::writeAggType(const DocMarkup::Entry& entry, AggTypeDeclBase* aggTypeDecl) +void DocMarkDownWriter::_appendAggTypeName(AggTypeDeclBase* aggTypeDecl) { - writePreamble(entry); - auto& out = m_builder; // This could be lots of different things - struct/class/extension/interface/.. - out << toSlice("# "); + ASTPrinter printer(m_astBuilder); + printer.addDeclPath(DeclRef(aggTypeDecl, nullptr)); + if (as(aggTypeDecl)) { - out << toSlice("struct "); + out << toSlice("struct ") << printer.getStringBuilder(); } else if (as(aggTypeDecl)) { - out << toSlice("class "); + out << toSlice("class ") << printer.getStringBuilder(); } else if (as(aggTypeDecl)) { - out << toSlice("interface "); + out << toSlice("interface ") << printer.getStringBuilder(); } else if (ExtensionDecl* extensionDecl = as(aggTypeDecl)) { out << toSlice("extension ") << extensionDecl->targetType; - _appendDerivedFrom(toSlice(" : "), extensionDecl); + _appendDerivedFrom(toSlice(" : "), extensionDecl); } else { out << toSlice("?"); } +} - Name* name = aggTypeDecl->getName(); - if (name) - { - out << name->text; - } - out << toSlice("\n\n"); +void DocMarkDownWriter::writeAggType(const DocMarkup::Entry& entry, AggTypeDeclBase* aggTypeDecl) +{ + writePreamble(entry); + + auto& out = m_builder; + + // We can write out he name using the printer + + ASTPrinter printer(m_astBuilder); + printer.addDeclPath(DeclRef(aggTypeDecl, nullptr)); + + out << toSlice("# `"); + _appendAggTypeName(aggTypeDecl); + out << toSlice("`\n\n"); { List inheritanceDecls; @@ -374,41 +902,104 @@ void DocMarkDownWriter::writeAggType(const DocMarkup::Entry& entry, AggTypeDeclB if (inheritanceDecls.getCount()) { - out << "*Derives from:* "; + out << "*Implements:* "; + _appendCommaList(_getAsStringList(inheritanceDecls), '`'); + out << toSlice("\n\n"); + } + } - for (Index i = 0; i < inheritanceDecls.getCount(); ++i) - { - if (i > 0) + writeDescription(entry); + + { + List assocTypeDecls; + _getDecls(aggTypeDecl, assocTypeDecls); + + if (assocTypeDecls.getCount()) + { + out << toSlice("# Associated types\n\n"); + + for (AssocTypeDecl* assocTypeDecl : assocTypeDecls) + { + out << "* _" << assocTypeDecl->getName()->text << "_ "; + + // Look up markup + DocMarkup::Entry* assocTypeDeclEntry = m_markup->getEntry(assocTypeDecl); + if (assocTypeDeclEntry) { - out << toSlice(", "); + _appendAsSingleLine(assocTypeDeclEntry->m_markup.getUnownedSlice(), out); + } + out << toSlice("\n"); + + List inheritanceDecls; + _getDecls(assocTypeDecl, inheritanceDecls); + + if (inheritanceDecls.getCount()) + { + out << " "; + _appendCommaList(_getAsStringList(inheritanceDecls), '`'); + out << toSlice("\n"); } - out << inheritanceDecls[i]->base; } + out << toSlice("\n\n"); } } + if (GenericDecl* genericDecl = as(aggTypeDecl->parentDecl)) + { + // The parameters, in order + List params; + for (Decl* decl : genericDecl->members) + { + if (as(decl) || + as(decl)) + { + params.add(decl); + } + } + + if (params.getCount()) + { + out << "## Generic Parameters\n\n"; + _appendAsBullets(_getAsNameAndTextList(params), '`'); + } + } + { List fields; _getDeclsOfType(aggTypeDecl, fields); if (fields.getCount()) { out << "## Fields\n\n"; - _appendAsBullets(fields); + + _appendAsBullets(_getAsNameAndTextList(fields), '`'); } } { - List methods; - _getDeclsOfType(aggTypeDecl, methods); - if (methods.getCount()) + // Make sure we've got a query-able member dictionary + buildMemberDictionary(aggTypeDecl); + SLANG_ASSERT(aggTypeDecl->isMemberDictionaryValid()); + + List uniqueMethods; + for (const auto& pair : aggTypeDecl->memberDictionary) { + CallableDecl* callableDecl = as(pair.Value); + if (callableDecl && isVisible(callableDecl)) + { + uniqueMethods.add(callableDecl); + } + } + + if (uniqueMethods.getCount()) + { + // Put in source definition order + uniqueMethods.sort([](Decl* a, Decl* b) -> bool { return a->loc.getRaw() < b->loc.getRaw(); }); + out << "## Methods\n\n"; - _appendAsBullets(methods); + _appendAsBullets(_getAsStringList(uniqueMethods), '`'); } } - - writeDescription(entry); } void DocMarkDownWriter::writePreamble(const DocMarkup::Entry& entry) @@ -421,26 +1012,40 @@ void DocMarkDownWriter::writePreamble(const DocMarkup::Entry& entry) out << toSlice("\n"); } - void DocMarkDownWriter::writeDescription(const DocMarkup::Entry& entry) { auto& out = m_builder; - out << toSlice("\n## Description\n\n"); - out << entry.m_markup; + if (entry.m_markup.getLength() > 0) + { + out << toSlice("## Description\n\n"); + + out << entry.m_markup.getUnownedSlice(); +#if 0 + UnownedStringSlice text(entry.m_markup.getUnownedSlice()), line; + while (StringUtil::extractLine(text, line)) + { + out << line << toSlice("\n"); + } +#endif + out << toSlice("\n"); + } } void DocMarkDownWriter::writeDecl(const DocMarkup::Entry& entry, Decl* decl) { // Skip these they will be output as part of their respective 'containers' - if (as(decl) || as(decl)) + if (as(decl) || as(decl) || as(decl) || as(decl)) { return; } if (CallableDecl* callableDecl = as(decl)) { - writeCallable(entry, callableDecl); + if (_isFirstOverridden(callableDecl)) + { + writeCallableOverridable(entry, callableDecl); + } } else if (EnumDecl* enumDecl = as(decl)) { @@ -452,6 +1057,12 @@ void DocMarkDownWriter::writeDecl(const DocMarkup::Entry& entry, Decl* decl) } else if (VarDecl* varDecl = as(decl)) { + // If part of aggregate type will be output there. + if (as(varDecl->parentDecl)) + { + return; + } + writeVar(entry, varDecl); } else if (as(decl)) @@ -460,14 +1071,41 @@ void DocMarkDownWriter::writeDecl(const DocMarkup::Entry& entry, Decl* decl) } } +bool DocMarkDownWriter::isVisible(const Name* name) +{ + return name == nullptr || !name->text.startsWith(toSlice("__")); +} + +bool DocMarkDownWriter::isVisible(const DocMarkup::Entry& entry) +{ + // For now if it's not public it's not visible + if (entry.m_visibility != MarkupVisibility::Public) + { + return false; + } + + Decl* decl = as(entry.m_node); + return decl == nullptr || isVisible(decl->getName()); +} + +bool DocMarkDownWriter::isVisible(Decl* decl) +{ + if (!isVisible(decl->getName())) + { + return false; + } + + auto entry = m_markup->getEntry(decl); + return entry == nullptr || entry->m_visibility == MarkupVisibility::Public; +} void DocMarkDownWriter::writeAll() { for (const auto& entry : m_markup->getEntries()) { - NodeBase* node = entry.m_node; - Decl* decl = as(node); - if (decl) + Decl* decl = as(entry.m_node); + + if (decl && isVisible(entry)) { writeDecl(entry, decl); } diff --git a/source/slang/slang-doc-mark-down.h b/source/slang/slang-doc-mark-down.h index e1728d18a..c42d406dc 100644 --- a/source/slang/slang-doc-mark-down.h +++ b/source/slang/slang-doc-mark-down.h @@ -31,7 +31,9 @@ struct DocMarkDownWriter /// Write out all documentation to the output buffer void writeAll(); - void writeCallable(const DocMarkup::Entry& entry, CallableDecl* callable); + /// This will write information about *all* of the overridden versions of a function/method + void writeCallableOverridable(const DocMarkup::Entry& entry, CallableDecl* callable); + void writeEnum(const DocMarkup::Entry& entry, EnumDecl* enumDecl); void writeAggType(const DocMarkup::Entry& entry, AggTypeDeclBase* aggTypeDecl); void writeDecl(const DocMarkup::Entry& entry, Decl* decl); @@ -39,7 +41,13 @@ struct DocMarkDownWriter void writePreamble(const DocMarkup::Entry& entry); void writeDescription(const DocMarkup::Entry& entry); - + + void writeSignature(CallableDecl* callableDecl); + + bool isVisible(const DocMarkup::Entry& entry); + bool isVisible(Decl* decl); + bool isVisible(const Name* name); + /// Get the output string const StringBuilder& getOutput() const { return m_builder; } @@ -50,15 +58,61 @@ struct DocMarkDownWriter { } + struct StringListSet; + /// Given a list of ASTPrinter::Parts, works out the different parts of the sig static void getSignature(const List& parts, Signature& outSig); + struct NameAndText + { + String name; + String text; + }; + + List _getUniqueParams(const List& decls); + + String _getName(Decl* decl); + String _getName(InheritanceDecl* decl); + + NameAndText _getNameAndText(DocMarkup::Entry* entry, Decl* decl); + NameAndText _getNameAndText(Decl* decl); + template - void _appendAsBullets(FilteredMemberList& in); - void _appendAsBullets(const List& in); + List _getAsNameAndTextList(const FilteredMemberList& in) + { + List out; + for (auto decl : const_cast&>(in)) + { + out.add(_getNameAndText(decl)); + } + return out; + } + template + List _getAsStringList(const List& in) + { + List strings; + for (auto decl : in) + { + strings.add(_getName(decl)); + } + return strings; + } + + List _getAsNameAndTextList(const List& in); + List _getAsStringList(const List& in); + + void _appendAsBullets(const List& values, char wrapChar); + void _appendAsBullets(const List& values, char wrapChar); + + void _appendCommaList(const List& strings, char wrapChar); + + void _maybeAppendSet(const UnownedStringSlice& title, const StringListSet& set); /// Appends prefix and the list of types derived from void _appendDerivedFrom(const UnownedStringSlice& prefix, AggTypeDeclBase* aggTypeDecl); + void _appendEscaped(const UnownedStringSlice& text); + + void _appendAggTypeName(AggTypeDeclBase* aggTypeDecl); DocMarkup* m_markup; ASTBuilder* m_astBuilder; diff --git a/source/slang/slang-options.cpp b/source/slang/slang-options.cpp index fb7ba79c6..ff7923771 100644 --- a/source/slang/slang-options.cpp +++ b/source/slang/slang-options.cpp @@ -437,6 +437,8 @@ struct OptionsParser // The default archive type is zip SlangArchiveType archiveType = SLANG_ARCHIVE_TYPE_ZIP; + bool compileStdLib = false; + slang::CompileStdLibFlags compileStdLibFlags = 0; bool hasLoadedRepro = false; char const* const* argCursor = &argv[0]; @@ -464,7 +466,7 @@ struct OptionsParser } else if (argStr == "-compile-stdlib") { - SLANG_RETURN_ON_FAIL(session->compileStdLib()); + compileStdLib = true; } else if (argStr == "-archive-type") { @@ -533,6 +535,10 @@ struct OptionsParser } else if (argStr == "-doc") { + // If compiling stdlib is enabled, will write out documentation + compileStdLibFlags |= slang::CompileStdLibFlag::WriteDocumentation; + + // Enable writing out documentation on the req requestImpl->getFrontEndReq()->shouldDocument = true; } else if (argStr == "-dump-repro") @@ -1109,6 +1115,11 @@ struct OptionsParser } } + if (compileStdLib) + { + SLANG_RETURN_ON_FAIL(session->compileStdLib(compileStdLibFlags)); + } + // TODO(JS): This is a restriction because of how setting of state works for load repro // If a repro has been loaded, then many of the following options will overwrite // what was set up. So for now they are ignored, and only parameters set as part diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index 1820b24e5..de47c48ee 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -245,7 +245,7 @@ SlangResult Session::checkPassThroughSupport(SlangPassThrough inPassThrough) return checkExternalCompilerSupport(this, PassThroughMode(inPassThrough)); } -SlangResult Session::compileStdLib() +SlangResult Session::compileStdLib(slang::CompileStdLibFlags compileFlags) { if (m_builtinLinkage->mapNameToLoadedModules.Count()) { @@ -256,6 +256,43 @@ SlangResult Session::compileStdLib() // TODO(JS): Could make this return a SlangResult as opposed to exception addBuiltinSource(coreLanguageScope, "core", getCoreLibraryCode()); addBuiltinSource(hlslLanguageScope, "hlsl", getHLSLLibraryCode()); + + if (compileFlags & slang::CompileStdLibFlag::WriteDocumentation) + { + // Not 100% clear where best to get the ASTBuilder from, but from the linkage shouldn't + // cause any problems with scoping + + ASTBuilder* astBuilder = getBuiltinLinkage()->getASTBuilder(); + SourceManager* sourceManager = getBuiltinSourceManager(); + + DiagnosticSink sink(sourceManager, Lexer::sourceLocationLexer); + + List docStrings; + + // For all the modules add their doc output to docStrings + for (Module* stdlibModule : stdlibModules) + { + RefPtr markup(new DocMarkup); + DocMarkupExtractor::extract(stdlibModule->getModuleDecl(), sourceManager, &sink, markup); + + DocMarkDownWriter writer(markup, astBuilder); + writer.writeAll(); + docStrings.add(writer.getOutput()); + } + + // Combine all together in stdlib-doc.md output fiel + { + String fileName("stdlib-doc.md"); + + StreamWriter writer(new FileStream(fileName, FileMode::Create)); + + for (auto& docString : docStrings) + { + writer.Write(docString); + } + } + } + return SLANG_OK; } diff --git a/tests/diagnostics/bad-operator-call.slang.expected b/tests/diagnostics/bad-operator-call.slang.expected index 1dd52587c..6b8f250d3 100644 --- a/tests/diagnostics/bad-operator-call.slang.expected +++ b/tests/diagnostics/bad-operator-call.slang.expected @@ -3,36 +3,36 @@ standard error = { tests/diagnostics/bad-operator-call.slang(18): error 39999: no overload for '+=' applicable to arguments of type (int, S) a += b; ^~ -core.meta.slang(1904): note 39999: candidate: func +=(matrix, T) -> matrix -core.meta.slang(1896): note 39999: candidate: func +=(matrix, matrix) -> matrix -core.meta.slang(1888): note 39999: candidate: func +=(vector, T) -> vector -core.meta.slang(1880): note 39999: candidate: func +=(vector, vector) -> vector -core.meta.slang(1872): note 39999: candidate: func +=(T, T) -> T +core.meta.slang(1937): note 39999: candidate: func +=(out matrix, T) -> matrix +core.meta.slang(1929): note 39999: candidate: func +=(out matrix, matrix) -> matrix +core.meta.slang(1921): note 39999: candidate: func +=(out vector, T) -> vector +core.meta.slang(1913): note 39999: candidate: func +=(out vector, vector) -> vector +core.meta.slang(1905): note 39999: candidate: func +=(out T, T) -> T tests/diagnostics/bad-operator-call.slang(20): error 39999: no overload for '+' applicable to arguments of type (int, S) a = a + b; ^ -core.meta.slang(1710): note 39999: candidate: func +(uint64_t, uint64_t) -> uint64_t -core.meta.slang(1703): note 39999: candidate: func +(uint, uint) -> uint -core.meta.slang(1696): note 39999: candidate: func +(uint16_t, uint16_t) -> uint16_t -core.meta.slang(1689): note 39999: candidate: func +(uint8_t, uint8_t) -> uint8_t -core.meta.slang(1682): note 39999: candidate: func +(double, double) -> double -core.meta.slang(1675): note 39999: candidate: func +(float, float) -> float -core.meta.slang(1668): note 39999: candidate: func +(half, half) -> half -core.meta.slang(1661): note 39999: candidate: func +(int64_t, int64_t) -> int64_t -core.meta.slang(1654): note 39999: candidate: func +(int, int) -> int -core.meta.slang(1647): note 39999: candidate: func +(int16_t, int16_t) -> int16_t +core.meta.slang(1743): note 39999: candidate: func +(uint64_t, uint64_t) -> uint64_t +core.meta.slang(1736): note 39999: candidate: func +(uint, uint) -> uint +core.meta.slang(1729): note 39999: candidate: func +(uint16_t, uint16_t) -> uint16_t +core.meta.slang(1722): note 39999: candidate: func +(uint8_t, uint8_t) -> uint8_t +core.meta.slang(1715): note 39999: candidate: func +(double, double) -> double +core.meta.slang(1708): note 39999: candidate: func +(float, float) -> float +core.meta.slang(1701): note 39999: candidate: func +(half, half) -> half +core.meta.slang(1694): note 39999: candidate: func +(int64_t, int64_t) -> int64_t +core.meta.slang(1687): note 39999: candidate: func +(int, int) -> int +core.meta.slang(1680): note 39999: candidate: func +(int16_t, int16_t) -> int16_t tests/diagnostics/bad-operator-call.slang(20): note 39999: 1 more overload candidates tests/diagnostics/bad-operator-call.slang(22): error 39999: no overload for '~' applicable to arguments of type (S) a = ~b; ^ -slang-stdlib.cpp(1718): note 39999: candidate: func ~(uint64_t) -> uint64_t -slang-stdlib.cpp(1715): note 39999: candidate: func ~(uint) -> uint -slang-stdlib.cpp(1712): note 39999: candidate: func ~(uint16_t) -> uint16_t -slang-stdlib.cpp(1709): note 39999: candidate: func ~(uint8_t) -> uint8_t -slang-stdlib.cpp(1706): note 39999: candidate: func ~(int64_t) -> int64_t -slang-stdlib.cpp(1703): note 39999: candidate: func ~(int) -> int -slang-stdlib.cpp(1700): note 39999: candidate: func ~(int16_t) -> int16_t -slang-stdlib.cpp(1697): note 39999: candidate: func ~(int8_t) -> int8_t +core.meta.slang(1629): note 39999: candidate: func ~(uint64_t) -> uint64_t +core.meta.slang(1626): note 39999: candidate: func ~(uint) -> uint +core.meta.slang(1623): note 39999: candidate: func ~(uint16_t) -> uint16_t +core.meta.slang(1620): note 39999: candidate: func ~(uint8_t) -> uint8_t +core.meta.slang(1617): note 39999: candidate: func ~(int64_t) -> int64_t +core.meta.slang(1614): note 39999: candidate: func ~(int) -> int +core.meta.slang(1611): note 39999: candidate: func ~(int16_t) -> int16_t +core.meta.slang(1608): note 39999: candidate: func ~(int8_t) -> int8_t tests/diagnostics/bad-operator-call.slang(27): error 30047: argument passed to parameter '0' must be l-value. a += c; ^ @@ -40,24 +40,24 @@ tests/diagnostics/bad-operator-call.slang(27): note 30048: argument was implicit tests/diagnostics/bad-operator-call.slang(31): error 39999: no overload for '+=' applicable to arguments of type (vector, vector) d += c; ^~ -core.meta.slang(1904): note 39999: candidate: func +=(matrix, T) -> matrix -core.meta.slang(1896): note 39999: candidate: func +=(matrix, matrix) -> matrix -core.meta.slang(1888): note 39999: candidate: func +=(vector, T) -> vector -core.meta.slang(1880): note 39999: candidate: func +=(vector, vector) -> vector -core.meta.slang(1872): note 39999: candidate: func +=(T, T) -> T +core.meta.slang(1937): note 39999: candidate: func +=(out matrix, T) -> matrix +core.meta.slang(1929): note 39999: candidate: func +=(out matrix, matrix) -> matrix +core.meta.slang(1921): note 39999: candidate: func +=(out vector, T) -> vector +core.meta.slang(1913): note 39999: candidate: func +=(out vector, vector) -> vector +core.meta.slang(1905): note 39999: candidate: func +=(out T, T) -> T tests/diagnostics/bad-operator-call.slang(33): error 39999: no overload for '+' applicable to arguments of type (vector, vector) d = c + d; ^ -core.meta.slang(1715): note 39999: candidate: func +<4>(vector, uint64_t) -> vector -core.meta.slang(1713): note 39999: candidate: func +<3>(uint64_t, vector) -> vector -core.meta.slang(1710): note 39999: candidate: func +(uint64_t, uint64_t) -> uint64_t -core.meta.slang(1708): note 39999: candidate: func +<4>(vector, uint) -> vector -core.meta.slang(1706): note 39999: candidate: func +<3>(uint, vector) -> vector -core.meta.slang(1703): note 39999: candidate: func +(uint, uint) -> uint -core.meta.slang(1701): note 39999: candidate: func +<4>(vector, uint16_t) -> vector -core.meta.slang(1699): note 39999: candidate: func +<3>(uint16_t, vector) -> vector -core.meta.slang(1696): note 39999: candidate: func +(uint16_t, uint16_t) -> uint16_t -core.meta.slang(1694): note 39999: candidate: func +<4>(vector, uint8_t) -> vector +core.meta.slang(1748): note 39999: candidate: func +<4>(vector, uint64_t) -> vector +core.meta.slang(1746): note 39999: candidate: func +<3>(uint64_t, vector) -> vector +core.meta.slang(1743): note 39999: candidate: func +(uint64_t, uint64_t) -> uint64_t +core.meta.slang(1741): note 39999: candidate: func +<4>(vector, uint) -> vector +core.meta.slang(1739): note 39999: candidate: func +<3>(uint, vector) -> vector +core.meta.slang(1736): note 39999: candidate: func +(uint, uint) -> uint +core.meta.slang(1734): note 39999: candidate: func +<4>(vector, uint16_t) -> vector +core.meta.slang(1732): note 39999: candidate: func +<3>(uint16_t, vector) -> vector +core.meta.slang(1729): note 39999: candidate: func +(uint16_t, uint16_t) -> uint16_t +core.meta.slang(1727): note 39999: candidate: func +<4>(vector, uint8_t) -> vector tests/diagnostics/bad-operator-call.slang(33): note 39999: 23 more overload candidates } standard output = { diff --git a/tests/doc/doc.slang b/tests/doc/doc.slang index b983011c5..447b6f6f3 100644 --- a/tests/doc/doc.slang +++ b/tests/doc/doc.slang @@ -1,5 +1,50 @@ //DISABLE_TEST:SIMPLE:-entry computeMain -target spirv -stage compute -doc +void outFunc(out int v) +{ + v = 10; +} + +/// Testing out nested generics +struct ParentStruct ///< Some type +{ + /// Testing out a child + struct ChildStruct ///< Some other type + { + /// A useless method hey ho + T getValue(S v) { T t; S s; return t; } + }; +}; + +struct GenericStruct +{ + /// Let's try a typedef too + typedef T Element; + + T getValue() { return value; } + + T value; +}; + +/// A rather silly generic function to test out doc extraction +T addInts ///< And another one + ( + /// CHECKING!! + T z, ///< The Z parameter + T b) ///< The B parameter +{ + return z + b; +} + +namespace Hey +{ + void doAnotherThing(int a); +} + /// Let's test indent /// /// ``` @@ -14,9 +59,12 @@ RWStructuredBuffer inputBuffer; /// An interface to do things interface IDoThing { + /// An associated type + associatedtype V; + /// Add two integers - int add(int a, ///< First parameter - int b ///< Second parameter + V add(V a, ///< First parameter + V b ///< Second parameter ); /// Subtract @@ -40,6 +88,8 @@ extension float : IThing struct Thing : IThing, IDoThing { + typedef int V; + int add(int a, int b) { return a + b; } int sub(int a, int b ) { return a - b; } float getValue() { return 1.0f; } @@ -86,19 +136,6 @@ int doThing(int a, ///< a parameter return a; } -/// A rather silly generic function to test out doc extraction -T addInts ///< And another one - ( - /// CHECKING!! - T z, ///< The Z parameter - T b) ///< The B parameter -{ - return z + b; -} [numthreads(4, 1, 1)] void computeMain(uint3 dispatchThreadID : SV_DispatchThreadID) -- cgit v1.2.3