-
Notifications
You must be signed in to change notification settings - Fork 825
[SPIR-V] Add vk::SampledTexture2D resource type and .Sample(), .CalculateLevelOfDetail() method.
#8047
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
base: main
Are you sure you want to change the base?
Conversation
|
✅ With the latest revision this PR passed the C/C++ code formatter. |
s-perron
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems like a reasonable direction. There are some issues that we need to figure out how to handle.
| // CHECK: [[in_var_TEXCOORD:%[a-zA-Z0-9_]+]] = OpVariable %_ptr_Input_v2float Input | ||
| // CHECK: [[out_var_SV_Target:%[a-zA-Z0-9_]+]] = OpVariable %_ptr_Output_v4float Output | ||
|
|
||
| vk::SampledTexture2D<float4> tex : register(t0); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you test this with an int so it is different then the next test? That we will know if you accidentally always output a float type.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for pointing out, added a test for vk::SampledTexture2D<uint> type.
tools/clang/lib/Sema/SemaHLSL.cpp
Outdated
| QualType float4Type = | ||
| LookupVectorType(HLSLScalarType::HLSLScalarType_float, 4); | ||
| recordDecl = DeclareVkSampledTexture2DType(*m_context, m_vkNSDecl, | ||
| float2Type, float4Type); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the result of the sample have to be a 4 element vector? What happens if the template type is a scalar?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, if a template type is scalar, the results are extracted. Added a test.
| if (isSampledTexture(imageType)) { | ||
| sampledImage = image; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we assert that the sampler is false? Not necessary, but this function has a complicated interface, and it could be easy to use it incorrectly.
Is there documentation for this function to update?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we assert that the sampler is false?
Added.
Is there documentation for this function to update?
Updated the function documentation.
67fef39 to
8030b4e
Compare
|
Thanks for the early review! I've updated the method to take in optional arguments. |
vk::SampledTexture2D resource type and .Sample() method.vk::SampledTexture2D resource type and .Sample(), CalculateLevelOfDetail() method.
vk::SampledTexture2D resource type and .Sample(), CalculateLevelOfDetail() method.vk::SampledTexture2D resource type and .Sample(), .CalculateLevelOfDetail() method.
6bc83c2 to
eb29b1b
Compare
eb29b1b to
03b6051
Compare
ea6ac39 to
389cd0f
Compare
Part of #7979
SampledTexture2Dresource type in thevknamespace..Sample(float2 location)method.float4.int2 offset, float clamp, uint status..CalculateLevelOfDetail(float2 location)method.