René's URL Explorer Experiment


Title: No diagnostic emitted for unsupported dynamic sampler array indexing · Issue #28 · devkitPro/deko3d · GitHub

Open Graph Title: No diagnostic emitted for unsupported dynamic sampler array indexing · Issue #28 · devkitPro/deko3d

X Title: No diagnostic emitted for unsupported dynamic sampler array indexing · Issue #28 · devkitPro/deko3d

Description: What's the issue you encountered? uam silently compiles dynamic indexing of a sampler2D[] array with a runtime non-uniform variable without error or warning, but produces incorrect behavior at runtime. The sampler array is always sampled...

Open Graph Description: What's the issue you encountered? uam silently compiles dynamic indexing of a sampler2D[] array with a runtime non-uniform variable without error or warning, but produces incorrect behavior at runt...

X Description: What's the issue you encountered? uam silently compiles dynamic indexing of a sampler2D[] array with a runtime non-uniform variable without error or warning, but produces incorrect behavior at ...

Opengraph URL: https://github.com/devkitPro/deko3d/issues/28

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"No diagnostic emitted for unsupported dynamic sampler array indexing","articleBody":"**What's the issue you encountered?**\nuam silently compiles dynamic indexing of a sampler2D[] array with a runtime non-uniform variable without error or warning, but produces incorrect behavior at runtime. The sampler array is always sampled at index 0 regardless of the index value passed. No diagnostic is emitted during compilation.\nThe workaround is a switch statement with literal compile-time indices, identical to the SM5.0 limitation in D3D11's fxc compiler — however unlike fxc, uam does not report this as an error or warning.\n\n**How can the issue be reproduced?**\nWrite a GLSL fragment shader with layout(binding = N) uniform sampler2D uTextures[16]\nPass a flat uint varying from the vertex shader as the array index (lets call it fragAlbedo)\nSample with texture(uTextures[fragAlbedo], fragTexCoord) where fragAlbedo is the varying\nCompile with uam\nAt runtime the sampler is always evaluated at index 0 regardless of fragAlbedo's value\n\n**The following workaround is required:**\nglslswitch(fragAlbedo)\n{\n    case  0: color = texture(uTextures[ 0], fragTexCoord); break;\n    case  1: color = texture(uTextures[ 1], fragTexCoord); break;\n    // etc.\n}\n\n**Environment?**\n\nHost OS: Windows 10 with MSYS2 shell\nOfficial release devkitPro toolchain via pacman\n\n**Additional context?**\nThe issue produces no compile-time error or warning from uam, making it extremely difficult to diagnose. The expected behavior is either a compile-time error stating dynamic indexing of sampler arrays is unsupported, or correct runtime behavior. GL_EXT_nonuniform_qualifier / nonuniformEXT was also attempted and reported as unsupported at runtime.\n\nFor reference, Microsoft's fxc compiler (D3D11 SM5.0) explicitly rejects this pattern at compile time with the error: \"error X3531: can't unroll loops marked with loop attribute\" / \"array index must be a literal\", making the limitation immediately clear to the developer. uam compiling this silently and producing incorrect runtime behavior with no indication of the limitation cost significant debugging time.\n\nThis issue was discovered when migrating away from sampler2DArray,dynamic indexing works correctly on sampler2DArray via texture(uTextureArray, vec3(fragTexCoord, fragAlbedo)) and has no issues. The problem is specific to sampler2D[] array dynamic indexing. Given that D3D11 SM5.0 also does not support this pattern, it is likely a hardware/compiler limitation of dksh as well, however the absence of any compile-time diagnostic meant approximately 2 days of debugging were spent isolating the issue. A simple compile-time error or warning stating that dynamic indexing of sampler2D[] arrays is unsupported would have resolved this immediately.\n\nThanks,","author":{"url":"https://github.com/420BlazeItBrah","@type":"Person","name":"420BlazeItBrah"},"datePublished":"2026-06-25T01:09:53.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/28/deko3d/issues/28"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:b00eaaf2-51ab-5d73-7a62-868fb0c38c83
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idC0F4:10DE3:C76782:118F098:6A4BE248
html-safe-nonce0f428e62e0a3868a696965ebcf550b2ef5d00ea6295e968dea2ddf5c074326e6
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDMEY0OjEwREUzOkM3Njc4MjoxMThGMDk4OjZBNEJFMjQ4IiwidmlzaXRvcl9pZCI6IjI0OTMxNDU4MDA3OTQ5ODk2IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac73a14608ca489ba77e0083f2a959b2fddc7dde12c509db10722410f72f08679e
hovercard-subject-tagissue:4739691078
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/devkitPro/deko3d/28/issue_layout
twitter:imagehttps://opengraph.githubassets.com/b8295090a27c4999c0fc86f6ba5296a5b52d538800facd0c3e9deeebb4182bf5/devkitPro/deko3d/issues/28
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/b8295090a27c4999c0fc86f6ba5296a5b52d538800facd0c3e9deeebb4182bf5/devkitPro/deko3d/issues/28
og:image:altWhat's the issue you encountered? uam silently compiles dynamic indexing of a sampler2D[] array with a runtime non-uniform variable without error or warning, but produces incorrect behavior at runt...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:username420BlazeItBrah
hostnamegithub.com
expected-hostnamegithub.com
None0f5d3ba365b3985d75c32a5957c8635488d58dcf027ae6ae958eee7edaa306a2
turbo-cache-controlno-preview
go-importgithub.com/devkitPro/deko3d git https://github.com/devkitPro/deko3d.git
octolytics-dimension-user_id7538897
octolytics-dimension-user_logindevkitPro
octolytics-dimension-repository_id170358881
octolytics-dimension-repository_nwodevkitPro/deko3d
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id170358881
octolytics-dimension-repository_network_root_nwodevkitPro/deko3d
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release253920ac2dc35b0849cca4633895f1f2e5f03051
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/devkitPro/deko3d/issues/28#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FdevkitPro%2Fdeko3d%2Fissues%2F28
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2FdevkitPro%2Fdeko3d%2Fissues%2F28
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=devkitPro%2Fdeko3d
Reloadhttps://github.com/devkitPro/deko3d/issues/28
Reloadhttps://github.com/devkitPro/deko3d/issues/28
Reloadhttps://github.com/devkitPro/deko3d/issues/28
Please reload this pagehttps://github.com/devkitPro/deko3d/issues/28
devkitPro https://github.com/devkitPro
deko3dhttps://github.com/devkitPro/deko3d
Please reload this pagehttps://github.com/devkitPro/deko3d/issues/28
Notifications https://github.com/login?return_to=%2FdevkitPro%2Fdeko3d
Fork 29 https://github.com/login?return_to=%2FdevkitPro%2Fdeko3d
Star 396 https://github.com/login?return_to=%2FdevkitPro%2Fdeko3d
Code https://github.com/devkitPro/deko3d
Issues 3 https://github.com/devkitPro/deko3d/issues
Pull requests 0 https://github.com/devkitPro/deko3d/pulls
Actions https://github.com/devkitPro/deko3d/actions
Security and quality 0 https://github.com/devkitPro/deko3d/security
Insights https://github.com/devkitPro/deko3d/pulse
Code https://github.com/devkitPro/deko3d
Issues https://github.com/devkitPro/deko3d/issues
Pull requests https://github.com/devkitPro/deko3d/pulls
Actions https://github.com/devkitPro/deko3d/actions
Security and quality https://github.com/devkitPro/deko3d/security
Insights https://github.com/devkitPro/deko3d/pulse
No diagnostic emitted for unsupported dynamic sampler array indexinghttps://github.com/devkitPro/deko3d/issues/28#top
https://github.com/420BlazeItBrah
420BlazeItBrahhttps://github.com/420BlazeItBrah
on Jun 25, 2026https://github.com/devkitPro/deko3d/issues/28#issue-4739691078
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.