Videra is still an early alpha embeddable viewer stack. Good feedback is not just "it failed" — it needs enough integration context to reproduce the host, backend, and package path that produced the failure.
Attach the smallest artifact set that explains the failure path:
| Situation | Primary artifact |
|---|---|
| Repository state or local setup | Attach artifacts/doctor/doctor-report.json and artifacts/doctor/doctor-summary.txt from Videra Doctor. |
| Viewer issue | Reproduce with Videra.MinimalSample and attach the diagnostics snapshot from VideraDiagnosticsSnapshotFormatter. |
| Import issue | Use Videra.Demo and attach the copied diagnostics bundle, import report, and smallest failing scene path. |
| Backend issue | Attach artifacts/doctor/doctor-report.json, the diagnostics snapshot, and LastInitializationError from copied diagnostics when startup is not-ready; include FallbackReason only if software fallback was explicitly enabled and actually selected. |
| Visual rendering or Performance Lab issue | Attach artifacts/doctor/doctor-report.json, artifacts/performance-lab-visual-evidence/performance-lab-visual-evidence-manifest.json, performance-lab-visual-evidence-summary.txt, the relevant PNG files, and per-scenario diagnostics text. |
| Package issue | Attach release-dry-run-summary.json, release-candidate-evidence-index.json, package-size-evaluation.json, and package-size-summary.txt when the report concerns package metadata, package size budgets, or package contract drift; the evidence index also carries optional Doctor/Performance Lab visual evidence status when visual output context is relevant. |
| Release issue | Attach public-release-preflight-summary.json, public-publish-before-summary.json, public-publish-after-summary.json, and public-release-notes.md; include the Package matrix and Known alpha limitations section that shipped with the release. |
| Native-host issue | Attach the matching artifacts/native-validation output plus artifacts/doctor/doctor-report.json; include wpf-smoke-diagnostics.txt when the Windows WPF smoke path was involved. |
| Packaged viewer validation | Attach artifacts/consumer-smoke/consumer-smoke-result.json and artifacts/consumer-smoke/diagnostics-snapshot.txt. |
| SurfaceCharts issue | Attach surfacecharts-support-summary.txt from smoke/Videra.SurfaceCharts.ConsumerSmoke or the copied Videra.SurfaceCharts.Demo support summary; keep it separate from VideraDiagnosticsSnapshotFormatter output. |
| Professional interaction workflow | Attach the optional Videra.AvaloniaWorkbenchSample support capture when the report depends on viewer interaction state, chart output evidence, chart probe evidence, and environment diagnostics together. |
SurfaceCharts support summaries are support evidence, not benchmark results, pixel-perfect visual-regression gates, GPU performance guarantees, or image/PDF/vector export artifacts. A structured summary must include these prefixes: GeneratedUtc, EvidenceKind, EvidenceOnly, ChartControl, EnvironmentRuntime, AssemblyIdentity, BackendDisplayEnvironment, SeriesCount, ActiveSeries, ChartKind, ColorMap, PrecisionProfile, OutputEvidenceKind, OutputCapabilityDiagnostics, DatasetEvidenceKind, DatasetSeriesCount, DatasetActiveSeriesIndex, DatasetActiveSeriesMetadata, and RenderingStatus.
Workbench support captures are support evidence too. ViewerInteractionEvidence, ChartOutputEvidence, and ChartProbeEvidence should be treated as report-only context from public APIs, not as replay files, benchmark guarantees, visual-regression baselines, fallback proof, or a broader viewer/chart project format.
- Confirm the install path:
nuget.orgpublic packagesGitHub Packagespreview validation- repository source build
- Capture the exact package version or commit SHA.
- Reproduce the issue with the smallest flow you can manage:
- Videra.MinimalSample for the default happy path
- Videra.ExtensibilitySample for
VideraView.Engine - Videra.InteractionSample for controlled interaction
- Videra.Demo for backend diagnostics and scene-pipeline visibility
smoke/Videra.SurfaceCharts.ConsumerSmokefor the packaged SurfaceCharts first-chart path on the supported host path
Videra.SurfaceCharts.Demofor the repository-only chart repro/reference path:Start here: In-memory first chartbefore any cache-backed investigationExplore next: Cache-backed streamingonly after the first-chart path rendersTry next: Analytics proofwhen you need explicit-coordinate, independent-ColorFieldprobe behavior for analytic path checksTry next: Waterfall proofwhen you need the second chart-family proof on the same chart shell;Try next: Scatter proofwhen you need the repo-owned scatter proof path on the same chart shell
- Export a diagnostics snapshot with
VideraDiagnosticsSnapshotFormatter.Format(View3D.BackendDiagnostics)or attach theconsumer smokediagnostics-snapshot.txtartifact; if transparency is involved, includeTransparentFeatureStatusfrom that snapshot so support can read the shipped transparency contract. If scene composition matters, includeLastFrameObjectCount,LastFrameOpaqueObjectCount, andLastFrameTransparentObjectCount; those are backend-neutral scene counts, not draw-call metrics. If performance matters, include the metric source lines: draw-call, instance, vertex, and pickable-object counts may beUnavailable, upload bytes are measured by scene residency, and resident resource bytes are estimated from residency records. If a snapshot export was involved, includeLastSnapshotExportPathandLastSnapshotExportStatustoo. - If the issue is about imported-material fidelity, include the smallest reproducer plus the relevant imported-asset/runtime details: per-primitive material participation, baseColor texture use, occlusion texture binding/strength,
KHR_texture_transformoffset/scale/rotation, and texture-coordinate override. Those fields now affect shipped renderer output on the static-scene path. - If the issue is visual or inspection-related, attach either:
- a snapshot exported through
ExportSnapshotAsync(...), or - an inspection bundle exported through
VideraInspectionBundleService.ExportAsync(...)- check
CanReplaySceneand includeReplayLimitation; they describe replayability semantics and should travel with the bundle whenever it captured host-owned objects or other non-replayable scene state
- check
- a snapshot exported through
- If viewer interaction state matters, include
VideraInteractionEvidenceFormatter.Format(...)output or theVidera.AvaloniaWorkbenchSampleViewerInteractionEvidencesection. - If chart probe state matters, include
SurfaceChartProbeEvidenceFormatter.Format(...)output or theVidera.AvaloniaWorkbenchSampleChartProbeEvidencesection. - If the issue involves Performance Lab visual output, generate the visual evidence bundle with
scripts/Invoke-PerformanceLabVisualEvidence.ps1, rerunscripts/Invoke-VideraDoctor.ps1, and attach the Doctor report plusperformance-lab-visual-evidence-manifest.json,performance-lab-visual-evidence-summary.txt, relevant PNG files, and per-scenario diagnostics text. - For release-candidate or package reports, attach
release-candidate-evidence-index.jsonafter the release dry run; use itsvisualEvidence.performanceLabVisualEvidenceandvisualEvidence.doctorVisualEvidencefields to show whether visual evidence was present, missing, or unavailable.
- Operating system and version
- GPU and driver details when native rendering is involved
- Package install path and package version
- Release issue evidence when the report concerns publication, GitHub Release assets, or public package availability:
public-release-preflight-summary.json,public-publish-after-summary.json,public-release-notes.md, the Package matrix section, and the Known alpha limitations section PreferredBackendorVIDERA_BACKENDvalue, if you overrode backend preference- diagnostics snapshot from
VideraDiagnosticsSnapshotFormatter ViewerInteractionEvidencefromVideraInteractionEvidenceFormatteror the optional Workbench support capture when selection, measurement, clipping, camera, or annotation context is relevant- Performance Lab visual evidence bundle when visual rendering evidence is relevant:
artifacts/performance-lab-visual-evidence/performance-lab-visual-evidence-manifest.json,performance-lab-visual-evidence-summary.txt, relevant PNG files, and per-scenario diagnostics text LastFrameObjectCount,LastFrameOpaqueObjectCount, andLastFrameTransparentObjectCountwhen the issue depends on scene compositionLastSnapshotExportPathandLastSnapshotExportStatuswhen the report includes a snapshot export- exported inspection snapshot, when the issue affects clipping, measurements, labels, or camera state
- inspection bundle directory when you need camera, clipping, measurements, annotations, and imported assets to replay together
CanReplaySceneandReplayLimitationfromVideraInspectionBundleService.ExportAsync(...)whenever the bundle is exportable but not replayableSurfaceCharts support summaryfrom either the packagedsmoke/Videra.SurfaceCharts.ConsumerSmokesurfacecharts-support-summary.txtartifact or theVidera.SurfaceCharts.DemoSupport summarypanel when the issue is inarea: surfacecharts; keep it separate fromVideraDiagnosticsSnapshotFormatteroutputChartProbeEvidencefromSurfaceChartProbeEvidenceFormatteror the optional Workbench support capture when hovered or pinned probe values affect the report- use
Copy support summaryafter reproducingStart here: In-memory first chart; continue toExplore next: Cache-backed streamingonly if needed, and useTry next: Analytics prooffor explicit-coordinate pinned-probe/analysis scenarios,Try next: Waterfall proofwhen the issue involves the waterfall chart-family path, orTry next: Scatter proofwhen the issue involves the scatter Plot path;VideraChartViewis shipped in the Avalonia control line - include the SurfaceCharts summary fields
GeneratedUtc,EvidenceKind,EvidenceOnly,ChartControl,EnvironmentRuntime,AssemblyIdentity,BackendDisplayEnvironment,SeriesCount,ActiveSeries,ChartKind,ColorMap,PrecisionProfile,OutputEvidenceKind,OutputCapabilityDiagnostics,DatasetEvidenceKind,DatasetSeriesCount,DatasetActiveSeriesIndex,DatasetActiveSeriesMetadata, andRenderingStatus; includeCacheLoadFailurewhen the cache-backed path falls back - SurfaceCharts demo-path choice when relevant:
Start here: In-memory first chartExplore next: Cache-backed streamingTry next: Analytics proofTry next: Waterfall proofTry next: Scatter proof
VideraChartViewis shipped inVidera.SurfaceCharts.Avalonia; the repository-ownedTry next: Scatter proofpath is the demo path to cite- SurfaceCharts chart state when relevant:
ViewStateInteractionQualityRenderingStatusOverlayOptions
- cache manifest and payload sidecar path when the cache-backed route is involved
- Linux display-server context when relevant:
ResolvedDisplayServerDisplayServerFallbackUsedDisplayServerFallbackReasonDisplayServerCompatibility
- inspection workflow context when relevant:
IsClippingActiveActiveClippingPlaneCountMeasurementCountLastSnapshotExportStatus- active
MeasurementSnapMode
- Whether the issue reproduces in:
- your host app
Videra.MinimalSampleconsumer smokesmoke/Videra.SurfaceCharts.ConsumerSmoke
- Smallest asset or scene that still reproduces the problem
Videra.Avalonia+ one matching platform package is the default public install path.- Linux native hosting is still
X11plus the documentedXWaylandbridge, not compositor-native Wayland embedding. ResolvedDisplayServer = X11means the direct supported X11 host path.ResolvedDisplayServer = XWaylandmeans a Wayland session is using the documented X11 bridge, not compositor-native Wayland embedding.- The
Videra.SurfaceCharts.*package line is a separate public product family; include the exact package ids involved when the issue is chart-specific. Videra.SurfaceCharts.Avalonia+Videra.SurfaceCharts.Processingis the default public surface/cache-backed install path, not a requirement for every chart path.smoke/Videra.SurfaceCharts.ConsumerSmokeis the packaged surface/cache-backed proof on the supported host path and emitssurfacecharts-support-summary.txtfor support capture.TransparentFeatureStatusin diagnostics snapshots captures the shipped transparency contract: alpha mask rendering plus deterministic alpha blend ordering for per-primitive carried alpha sources.LastFrameObjectCount,LastFrameOpaqueObjectCount, andLastFrameTransparentObjectCountare backend-neutral scene diagnostics, not draw-call metrics.LastFrameDrawCallCount,LastFrameInstanceCount,LastFrameVertexCount, andPickableObjectCountareUnavailablewhen the active backend path does not measure them;LastFrameUploadBytesis measured by scene residency, andResidentResourceBytesis a residency estimate.- Imported-material fidelity now reaches the shipped static-scene renderer path for baseColor texture sampling, occlusion texture binding/strength, emissive inputs, normal-map-ready inputs, and
KHR_texture_transform/ texture-coordinate override. Treat those details as shipped on-screen output concerns on the bounded static-scene seam, not as a broader lighting/shader/backend promise. Videra.SurfaceCharts.Demoremains repository-only and is the support-ready repro/reference app for theStart here,Explore next, andTry nextpaths.- Performance Lab visual evidence is support/review evidence only. It is not a pixel-perfect visual-regression gate, stable benchmark guarantee, real GPU instancing proof, renderer parity proof, or new chart-family promise.
- Release-candidate evidence index visual evidence fields are optional support context. Missing or unavailable visual evidence should be classified as environment residual or not-run context unless the specific release issue depends on visual output.
FallbackReasonin diagnostics is fallback-specific evidence; default native startup failures without fallback should be framed as initialization/not-ready state viaIsReady = falseandLastInitializationError.
- Bug reports: GitHub Issues with the bug template
- Feature/API/docs ideas: GitHub Issues with the feature template
- Usage questions / design discussion: GitHub Discussions
- Private vulnerabilities: SECURITY.md only