Skip to content

Request for an extension like cl_qcom_compressed_image.. #15

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
oscarbg opened this issue Feb 17, 2018 · 5 comments
Closed

Request for an extension like cl_qcom_compressed_image.. #15

oscarbg opened this issue Feb 17, 2018 · 5 comments
Labels
Feature request New driver feature

Comments

@oscarbg
Copy link

oscarbg commented Feb 17, 2018

Hi,
now that Intel OpenCL development is open sourced for all platforms with some effort everyone can implement what they want on top of it.. but anyway I'm requesting for an extension that surprises me hasn't been exposed yet by almost any vendors..
I'm meaning the support for OpenCL kernel to read from compressed textures (images in OpenCL speaking).. I mean textures compressed with texture formats like ASTC,DXTx,BPTC,etc supported by the GPU supporting OpenCL.. note that functionality is supported by all hardware already as OpenGL/OpenGL ES/DirectX compute shaders already allow reading from such textures AFAIK.. still troubles me by Khronos or any vendors expose it in OpenCL.. seems Qualcomm is the only one with cl_qcom_compressed_image altough can't find info on that extension and doesn't seem published by the name seems clear that supports compressed textures and of course must be read_only as writing to compressed textures from compute shaders/OpenCL kernels seems very difficult to support in HW and seems there is no big reason to support it..

of course reading from compressed textures in CL kernels has it's uses.. I'm thinking of custom render pipelines/rasterizers or raytracers implemented with OpenCL kernels.. if we want to use same assets (stored efficiently with compressed textures) as with current GPU pipeline on this novel/hybrid pipelines we need this functionality..
Projects like these were tested with some success years ago:
http://research.nvidia.com/publication/high-performance-software-rasterization-gpus
altough in CUDA and remember seeing in the paper noting as current limitations/future work that compute APIs like CUDA didn't expose compressed texture at the time.. AFAIK it hasn't changed still altough this limitation was pointed by his own Nvidia researchers..
also for example AMD has
https://github.com/GPUOpen-LibrariesAndSDKs/RadeonProRender-Baikal
https://github.com/GPUOpen-LibrariesAndSDKs/RadeonRays_SDK
projects which are raytracers on OpenCL and show complex scenes but of course this scenes can't use compressed textures because OpenCL doesn't allow it as if were going to be rendered natively on GPU graphics APIs..

what do you think?

@AdamCetnerowski
Copy link
Contributor

Thank you for your suggestion. This requires some technical analysis on our side. We will keep this issue open until we have a repsonse for you.

@oscarbg
Copy link
Author

oscarbg commented Feb 19, 2018

thanks for taking into consideration.. ideally I wish gets eventually as EXT/KHR and exposed almost by every vendor on modern hardware.. for me seems like a somewhat obvious omission for such a long time since OpenCL has been released..

@MichalMrozek MichalMrozek added Feature request New driver feature and removed enhancement labels Feb 22, 2018
@MichalMrozek
Copy link
Contributor

Can you share some use cases?
Are you interested in reading from such compressed textures?

I was not able to find any reference for the cl_qcom_compressed_image.

In OpenCL we are not able to write to compressed surface from the GPU, this is only available in 3D pipeline, that's why DirectX/OpenGL has the support. OpenCL uses GPGPU Graphics Pipeline that has its limits.

We can potentially support reads from compressed texture, but the data needs to be uploaded to it somehow. It can be done either in DirectX/OpenGL or through some kind of new OpenCL API.
If you could share some use cases , that would definitely help with evaluation.

@MichalMrozek
Copy link
Contributor

Hello @oscarbg
Can you provide more details ?
Is this still relevant after my update?

@MichalMrozek
Copy link
Contributor

Closing due to longer then one month inaction.
Feel free to reopen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature request New driver feature
Projects
None yet
Development

No branches or pull requests

3 participants