You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Pipeline layout helpers, additions only. UnionOptions for PipelineLayout.TryCreateUnion(entries, options, ...): IgnoreTextureDimension lets a 2D and a cube texture share a slot, MergeStorageAccess merges read-only and read-write buffers of one family to read-write. WebGpuLayoutOptions.TextureDimensions picks the viewDimension of such a slot (without a pick TryToWebGpu reports it as unsupported, and it refuses a merged read-only/read-write buffer unless ReadOnlyStorageBuffers names it). PipelineLayout.ToBindings(BindingOptions?) returns target-neutral BindingDescriptions (BindingType, TextureDimension, TextureSampleKind, comparison flag, count, stages, dynamic flag, Metal index). VertexLayout.TrySplit(streams, ..., overrides) spreads a vertex input over several buffers with per-vertex or per-instance step (VertexStream, VertexStreamLayout.ToVulkan/ToMetal/ToWebGpu); overlapping attributes, a too-small stride and a location in no stream are LayoutErrors.
Source-level debug information. CompileOptions.DebugInfo (DebugInfoLevel.None by default; Lines, Full) and DebugSourceRoot. SPIR-V: Lines writes OpSource (with the text of the main and each included file) and OpLine/OpNoLine, as DXC's -Zi; Full writes NonSemantic.Shader.DebugInfo.100 (compilation unit, one DebugSource per file, functions, lexical blocks, inlined-at records, local variables with DebugDeclare/DebugValue, global variables, types, lines, entry point), as DXC's -fspv-debug=vulkan-with-source, for RenderDoc and Nsight. MSL: #line directives for Metal's -gline-tables-only -frecord-sources and Xcode. WGSL is unchanged. Paths in the output are relative to DebugSourceRoot and never absolute. Off by default, and then every blob is byte-identical to before. The optimizer keeps running with debug information on and keeps positions through every pass; Optimize = false gives one step per statement with every local visible. Command line: -Zi, -fspv-debug=vulkan-with-source (also vulkan, file, source, line, tool), --debug-root. Build package: OneShaderDebugInfo (true/full/lines/false) and OneShaderOptimize, item metadata DebugInfo and Optimize. See docs/debugging.md.