Skip to content

Use textureFloatFilterable for VSM_32F shadow filtering - #9263

Open
willeastcott wants to merge 1 commit into
mainfrom
fix-vsm32-filterable-check
Open

Use textureFloatFilterable for VSM_32F shadow filtering#9263
willeastcott wants to merge 1 commit into
mainfrom
fix-vsm32-filterable-check

Conversation

@willeastcott

Copy link
Copy Markdown
Contributor

Description

ShadowMap picked the VSM32 filter from device.extTextureFloatLinear — a raw WebGL extension object that is undefined on WebGPU — so VSM32 shadows were silently sampled with nearest filtering there, even though light.js approves SHADOW_VSM_32F based on the portable device.textureFloatFilterable flag. This switches to the same flag. On WebGL the behaviour is identical, since textureFloatFilterable is derived directly from that extension.

Fixes #9257

Verified: lint clean; unit suite at the main baseline (2337 passing).

Checklist

  • I have read the contributing guidelines
  • My code follows the project's coding standards
  • This PR focuses on a single change

🤖 Generated with Claude Code

extTextureFloatLinear is a raw WebGL extension object, undefined on
WebGPU, so VSM32 shadows were silently sampled with nearest filtering
there even though light.js approves the shadow type based on the
portable textureFloatFilterable flag. Identical on WebGL, where
textureFloatFilterable is derived from the same extension. Fixes #9257.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Build size report

This PR changes the size of the minified bundles.

Bundle Minified Gzip Brotli
playcanvas.min.js 2390.4 KB (+0.0 KB, +0.00%) 614.7 KB (−0.0 KB, −0.00%) 477.0 KB (+0.0 KB, +0.00%)
playcanvas.min.mjs 2387.8 KB (+0.0 KB, +0.00%) 613.4 KB (−0.0 KB, −0.00%) 476.3 KB (−0.2 KB, −0.04%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

VSM_32F shadow filtering checks raw extTextureFloatLinear, forcing nearest filtering on WebGPU

1 participant