Repository navigation
GPU Native Surface UV01 Shader Source Selected Contract
Owner Execute GPU / actual Render1049 coordinate material requirement6103505767 / next native renderer preparation. Actual accepted parent3d73185e2d2adddc22bbed60afaf2a1d278af6a5 contains adopted1432/1434/1439/1441. New independent source/compiler stage is READY. Existing-capability probe: legacy constant material produces old shader with position0/normal1 only; valid native UV01 gradient compiles/lowers to in vec2 v_native_surface_uv01;, but actual materialMeshShaders rejects it with MeshMaterialError IR / Undeclared material uniform surface_u01. No matching native vertex varying/source preparer exists. A new source generator closes this actual shader ABI seam, not arithmetic or a copied EngineUV catalog. No duplicate titled nativeUV01shader card found. #1445 authored light objects remain a separate planned provider; this stage preserves existing global lighting semantics.
Branch codex/gpu-native-surface-uv01-shader-source; isolated /Users/user/.barocss-ai/v3/wt/gpu-native-surface-uv01-shader-source. FOUR paths ONLY: root NEW packages/barocss-gpu/src/native-surface-uv01-shader-source.ts and additive src/index.ts/README; worker NEW examples/gpu-scene/native-surface-uv01-shader-source-flow.mjs. Two private independent ABI/oracle checks. Preserve all peer edits; no same-file writes. No old mesh-shaders/material/binding/producer/renderer/frame/CAD/Interop/Viewer/Root/manifest/lock/policy edits. Root owns build/ONEflow/commit/final evidence; sole Integration adopts; one immutable handoff Integration+actualRender1049. Source stage only, no GL resource or frame availability. Parent126 runtime exports plus2 expected128, measure actual.
Runtime TWO prepareNativeSurfaceUV01ShaderSource(input:unknown), NativeSurfaceUV01ShaderSourceError. Types NativeSurfaceUV01ShaderSourceRequest, PreparedNativeSurfaceUV01ShaderSource, NativeSurfaceUV01ShaderSourceCode. Request exactFOUR own enumerable data fields {format:'barocss-gpu-native-surface-uv01-shader-request',version:0,binding:NativeSurfaceUV01BindingRequest,lighting:null|MeshLighting}. Currentrealm Object.prototype only; no array/nullproto/inherited/hidden/symbol/accessor/extra/missing fields. Cardinality before field descriptors; raw reflection always INPUT with exact cause, even a public Error-class caller. No source-only unchecked IR, prepared binding/UV view, arbitrary shader string/callback/GLSL/URL input. lighting must explicitly be null for original fixed-light template, or an admitted own three-field MeshLighting (ambientStrength,directionalStrength,direction).
Result exactSIX {format:'barocss-gpu-native-surface-uv01-shader-source',version:0,profile:'source0-native-opaque-uv01-shader-source-v0',request,binding,shaders:{vertex,fragment}}. Fresh frozen ordinary own data; binding.geometry.uv01 stays independently owned mutableFloat32 as1439. request is an EFFECTIVE canonical source request: binding rebuilt from produced geometry.request, canonical material IR and RESOLVED uniform values; omitted versus explicit default is not retained as editor history. Original geometry/material source strings, native coefficients/knots/domain/rawUV/signs/IDs remain. Resolved numeric uniform zeros canonical+0. Returned canonical request reconstructs the same source; it is not the original unresolved editor intent or a trusted renderer token. No linked program/location/VAO/buffer/canvas/device handles.
Snapshot wrapper once. Admit lighting BEFORE binding generation with actual validateMeshLighting when non-null; no new lighting entity/catalog/photometric semantics. Call actual prepareNativeSurfaceUV01MaterialBinding ONCE: existing two material snapshot/compile operations plus one source geometry producer, inherited work/budgets/copy/cause semantics preserved. No second material lower or geometry generation hidden in shader construction. Use only newly returned trusted binding.lowered declarations/expression and own meshLightingShaders(validated lighting or undefined). Never accept caller lowered text. This is trusted module-source reuse, not a hostile-JavaScript-global sandbox.
Vertex GLSL300es/highp preserves old position location0/normal location1, aspect/defaultCamera/view/projection uniforms, exact default-camera and projection*view branches and worldNormal=normal. Insert layout(location=2) in vec2 native_surface_uv01; immediately after existing normal input; out vec2 v_native_surface_uv01; immediately after out worldNormal; direct assignment v_native_surface_uv01=native_surface_uv01; after worldNormal=normal. Smooth default perspective-correct highp varying; no flat/interpolation certificate. Attribute input is already normalized original-domain derivedFloat32. Position must be existing display-scale/pose converted position, normal existing world-space prepared normal; source generator performs no mm/axis/pose/camera conversion or geometryF32 validation.
Fragment preserves GLSL300es/highp/worldNormal/outputColor and existing fixed or explicit runtime ambient/directional/global lighting ABI/gamma/opaquealpha1. Immediately after worldNormal add actual binding.lowered.inputDeclarations (exact in vec2 v_native_surface_uv01;). After uniform vec3 color; add trusted uniformDeclarations (mat_u_N). Replace ONLY the single pow(color,vec3(2.2)) occurrence with ( + trusted linear lowered.expression + ), retaining outer pow(...*light,vec3(1.0/2.2)). This prevents second sRGB decode; fixed lighting null remains old constants, explicit lighting keeps ambientStrength/directionalStrength/lightDirection uniforms. Existing color uniform remains for ABI even when optimized out. No new physical/PBR/color-space policy or multi-light support. Exact single-occurrence anchors must all match; mismatch refuses SHADER, no silent duplicate/replacement fallback. Keep original templates unchanged.
Bound each COMPLETE vertex/fragment string to65536 UTF16 andUTF8 after trusted construction. No claim that every valid source reaches this budget refusal; no template monkeypatch/mock callerGLSL to force it. Binding source/copy/work budgets remain1439; only fixed insertions/linear string construction/UTF8 guards added. Original U/V/domain remain dimensionless native authority; UV01/F32/varying are derived sampled inputs, not exact native queries. No Source1SDF/Source2/generic EngineUV/frame schema change; legacy shader helpers still refuse new IR and preserve old output.
NativeSurfaceUV01ShaderSourceError codes INPUT|LIGHTING|BINDING|SHADER, bounded message<=1024, readonly start/end. INPUT local wrapper/tag/shape and raw reflection with exact cause/zero offsets. LIGHTING wraps actual lighting error, cause exact; no fabricated local source spans. BINDING wraps actual NativeSurfaceUV01BindingError with its original start/end and intact MATERIAL/GEOMETRY/UNIFORM nested causes. SHADER is local trusted anchor/full-string budget refusal, no invented cause. All failures retain prior source/native/binding/derivedview/shader files; function owns no global accepted state. No freezing/mutation of caller request or original shared templates.
FIRST Node22 affected GPU build, FIRST new example syntax, ONE ordinary own-source/emitted-public/DTS/full geometry+material source/IR/effective request/shader files/genuinecold flow. Authentic238B nonunit Surface9x9 and direct U/V gradients with amount default/explicit update/typedlocal; fixed-null and explicit lighting. Independent exact vertex additions/deletion-to-original equality, matching varying/highp/uniform names/layout, independently expected linear expression/clamp/gamma/opaque alpha, unchanged camera/position/normal semantics, original source/Model/domain/rawUV/signs/648B copiedmutableUV and canonical resolved request. Cold child reads COMPLETE saved source/IR/request, invokes real public preparation then compares complete source strings and original/derived data. No parent prepared authority, GLSL compiler mock, evaluator/pixel substitute or shader link claim.
Focus refusal controls on new wrapper/getter/reflection/prepared-input rejection/actual lighting/BINDING source/IR/uniform/geometry error chains; source/UTF16/cause priority and prior files/view/text retention. One actual legacy shader control remains unchanged/refuses newIR. Actual public128 namespace/3types and source dependency graph recorded; no old whole1432/1434/1439/1441/maxima/reader/archive/packed/parity/wholegallery/Review/performance campaigns. Generated-source caps checked directly; unreachable anchor/budget branches remain explicitly untested.
Gate native implementation -> affected build -> ONE meaningful source/API/file flow -> exact clean parent/head/results/first failures/repairs/support limits Issue -> immutable handoff -> next owned. Stage NATIVE_SURFACE_UV01_SHADER_SOURCE_CPU only. Attribute upload/link/device validation/newframe/TEN/context/firstmount/update/recovery1334/loss/disposal/pixels/ViewerRender/currentRoot1254/674/publication remain PLANNED/missing. Original52215 policy denial and user-owned host unchanged; no browser/targetHTTP/alternateorigin/port/tool/CDP/proxy or process/config change. Preserve paused629, old scenes/render/kiosk andRelease0.12.2. No productpush/PR/selfmerge/npm/deploy/release. Before-code Issue+ownedWiki freeze this contract; missing consumer/frame/graphics gates do not block this genuine source ABI implementation.
Receipt6104377408: clean3d73185e2d2adddc22bbed60afaf2a1d278af6a5 ->50b2ce8b5fa5a514824394f31e63b9b22f853a08, FOUR owned paths. FIRST GPU build0/927.4KiB; FIRST flow1 example sorted-key expectation; expected-order-only repair/SAME flow retry0. Actual10admissions/34refusals/getter0/reflection2/128exports/6cold/source275/no own-dist. Exact complete camera/lighting/gamma/opaque ABI plus location2/native varying/trusted linear source, full native source/domain/rawUV/signs and canonical effective request/F32 ownership/file retention qualified. Complete source64KiB guards; forced anchor/overflow/GL branches untested. ResultSHA1785df2d25f77e18e05137a71bd489bafb6d1b046393b22a18b492b7060c8bbd. Once immutable handoff Integration+actualRender1049. GPU-Native-Surface-UV01-Frame-Next-Preparation updates actual source ABI and execution-pose/world-normal requirements; upload/link/newframe/TEN/pixels/lifetime/currentRoot/consumer/publication separate. Next actual1437/1446 SplitBody composition is assessed against existing CAD1348 mesher/1351/GPU TriangleGeometry/EngineScene rather than new kernels or legacy profile casts.