llvm / llvm/llvm-project

[Matrix] Implement matrix support for the `all` HLSL Function

Open
#184,493 0 comments 0 reactions 0 assignees View on GitHub
bot:HLSL HLSL
Dominant language
LLVM
Stars
40.5k
Forks
18.7k
PR merge metrics
PR metrics pending

Description

> Note: This issue tracks matrix support for `all`. The original implementation issue is [here](https://github.com/llvm/llvm-project/issues/88946).

Matrix requirements:
- [ ] https://github.com/llvm/wg-hlsl/issues/387

## HLSL:
Determines if all components of the specified value are non-zero.

## Parameters

| Item | Description |
|--------------------------------------------------------|----------------------------------------|
| *x*
| \[in\] The specified value.
|

## Return Value

**True** if all components of the *x* parameter are non-zero; otherwise, **false**.

## Remarks

This function is similar to the [**any**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-any.md) HLSL intrinsic function. The **any** function determines if any components of the specified value are non-zero, while the **all** function determines if all components of the specified value are non-zero.

## Type Description

| Name | [**Template Type**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-intrinsic-functions.md) | [**Component Type**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-intrinsic-functions.md) | Size |
|-------|----------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|------|
| *x* | [**scalar**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-intrinsic-functions.md), **vector**, or **matrix** | [**float**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/WinProg/windows-data-types.md), [**int**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/WinProg/windows-data-types.md), [**bool**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/WinProg/windows-data-types.md) | any |
| *ret* | [**scalar**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-intrinsic-functions.md) | [**bool**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/WinProg/windows-data-types.md) | 1 |

## Minimum Shader Model

This function is supported in the following shader models.

| Shader Model | Supported |
|------------------------------------------------------------------------------------|-----------------------|
| [Shader Model 2 (DirectX HLSL)](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-sm2.md) and higher shader models | yes |
| [Shader Model 1 (DirectX HLSL)](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-sm1.md) | vs\_1\_1 and ps\_1\_4 |

## See also

[**Intrinsic Functions (DirectX HLSL)**](https://github.com/MicrosoftDocs/win32/blob/docs/desktop-src/direct3dhlsl/dx-graphics-hlsl-intrinsic-functions.md)

Contributor guide

Open the contributing guide

Research direction

Start with the original implementation issue linked from this issue and review the matrix requirement in wg-hlsl issue 387. Trace the existing HLSL implementation of the all intrinsic and its tests, if identified there. Done means all accepts matrix inputs and returns true only when every matrix component is non-zero.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.