Skip to content
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

vc4: automatic S3TC->ETC1 conversion when loading textures? #108

Open
volkertb opened this issue Jul 11, 2018 · 1 comment
Open

vc4: automatic S3TC->ETC1 conversion when loading textures? #108

volkertb opened this issue Jul 11, 2018 · 1 comment

Comments

@volkertb
Copy link

volkertb commented Jul 11, 2018

This might be a crazy idea, but couldn't the VC4 Mesa driver be enhanced with "virtual" S3TC support (gl_ext_texture_compression_s3tc), with any uploaded S3TC-compressed textures automatically being transcoded to ETC1 on the fly (in software) before being stored in the video memory?

I understand that transcoding textures would lead to some visual quality loss, as well as a somewhat longer initial texture loading time, but the VC4's video memory is limited, so texture compression would be useful. Also this way, the VC4's hardware support for ETC1-compressed textures would be put to good use.

This could benefit some games and projects like OpenMW that require S3TC compression to work properly with original game assets. Yes, such games and projects could be patched (and/or the assets converted) by the user, but having the driver take care of this automatically would be much more flexible and convenient.

Thank you for considering this.

@anholt
Copy link
Owner

anholt commented Jul 11, 2018

It's not the first time the idea has come up, but we don't have an online compressor for ETC1 in Mesa that I know of (since online compression is expensive and apps generally do compression at build time instead), so someone would have to find someone else's. I'm not planning on working on it, myself.

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

No branches or pull requests

2 participants