KhronosGroup / KhronosGroup/OpenCL-CTS

flush result to zero if the image linear sample value is a denormal value

Open
#1,263 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
232
Forks
235
Avg merge
8d 7h
Merged PRs (30d)
18

Description

https://github.com/KhronosGroup/OpenCL-CTS/blob/0876ea10be4783340683c9970c5899ac8ed1d6ab/test_common/harness/imageHelpers.cpp#L2183

if the value of `upLeftA[i] * weights[0][0][0])` is a denormal number, some implement may already flush to zero.

Let's assume that:
`upLeftA[i] * weights[0][0][0] = 1.174e -38` (denormal number)
`upRightA[i] * weights[1][0][0] = 1.174e -38` (denormal number)
`...`
`lowRightB[i] * weights[1][1][1] = 1.174e -38` (denormal number)

for CPU, `outData[i] = 9.392e -38` (not denormal number)
but for some GPU which does't support denormal number,`outData[i]` may flush to zero.

So , I suggest that cts should check whether each component is a denormal number rather than `outData[i]`.

Thanks

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at test_common/harness/imageHelpers.cpp:2183 and inspect how the image interpolation result is validated. Check the individual weighted component values for denormal handling rather than only the final outData value. Done means the conformance check accounts for implementations that flush denormal intermediate values to zero, with the affected image tests passing.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics, testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.