Skip to content

Conversation

@tarcila
Copy link
Collaborator

@tarcila tarcila commented Mar 17, 2025

VisRTX supported compressed textures are BC1,2,3,4,5.
=> BC6,7 are not supported nor really tested.
Those file format would require implementing some vertical flip algorithm so texture are correctly oriented, which is lower priority for now.

TSD supports loading of a subset of DDS compressed image formats (BC1-7). Raw/non-block compressed textures are not supported by the reader.

Here's an avocado, compressed using BC3 compressed textures
image
Left handside is VisRTX, right handside is VisGL.

tarcila added 3 commits March 17, 2025 16:08
Only supporting BC1,2,3,4,5
Bc6 and BC7 might happen to work but are not tested.
Correctly following the specification. This way both VisRTX and VisGL
are able to correctly digest the same content.
Copy link
Collaborator

@jeffamstutz jeffamstutz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a couple of minor notes about the GPU-side of things. Let me know if they make sense or not.

vec3 invSize;
};

struct CompressedImage2DData
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like this structure is 100% identical to the normal Image2D GPU structure -- I think it would make sense to combine them, and perhaps keep the enum so we can differentiate them if needed but keep the same code paths in evalMaterial.h?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a fair point I did miss when rebasing and simplifying the code.
Given what you mentioned, I'd go for completely removing the identical state and the matching enum. Would this work for you?
Both can be reintroduce later on if that's needed.

Copy link
Collaborator

@jeffamstutz jeffamstutz Mar 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd go for completely removing the identical state and the matching enum. Would this work for you?

Yes, works for me!

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment addressed!

Both are having the exact same layout and semantic from a GPU
perspective, there is no need to separate them.
@jeffamstutz
Copy link
Collaborator

LGTM, thanks!

@jeffamstutz jeffamstutz merged commit 2747714 into NVIDIA:next_release Mar 18, 2025
5 checks passed
@tarcila tarcila deleted the dds branch March 18, 2025 14:10
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

Successfully merging this pull request may close these issues.

2 participants