This page contains Windows bias

About This Page

This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.

Bias Analysis

Bias Types:
⚠️ windows_tools
⚠️ missing_linux_example
⚠️ windows_first
Summary:
The documentation is heavily focused on Windows-specific graphics APIs and tools, such as Direct3D 11 (D3D11), Windows Mixed Reality, and HoloLens 2. All code examples and setup instructions assume the use of Windows technologies, with no mention of Linux or cross-platform alternatives. There are no examples or guidance for Linux users, and the documentation does not acknowledge the absence of Linux support or provide any roadmap for parity.
Recommendations:
  • Explicitly state platform support at the beginning of the documentation, clarifying if Linux is unsupported or if there are plans for future support.
  • If Linux support is not available, provide a section explaining this and suggest possible workarounds or alternatives for Linux developers.
  • If partial Linux support exists (e.g., via OpenXR or Vulkan), add equivalent Linux setup and code examples.
  • When introducing APIs or tools, mention cross-platform alternatives where possible (e.g., Vulkan for graphics binding) and provide guidance for non-Windows environments.
  • Structure the documentation to avoid assuming Windows as the default platform; instead, organize by platform or provide parallel instructions for each supported OS.
GitHub Create pull request

Scan History

Date Scan ID Status Bias Status
2025-08-17 00:01 #83 in_progress ✅ Clean
2025-07-13 21:37 #48 completed ❌ Biased
2025-07-12 23:44 #41 in_progress ❌ Biased

Flagged Code Snippets

RenderingSession currentSession = ...; GraphicsBindingOpenXrD3d11 openXrBinding = (currentSession.GraphicsBinding as GraphicsBindingOpenXrD3d11); openXrBinding.BlitRemoteFrame();
RemoteRenderingInitialization managerInit = new RemoteRenderingInitialization(); managerInit.GraphicsApi = GraphicsApiType.OpenXrD3D11; managerInit.ConnectionType = ConnectionType.General; managerInit.Right = ///... RemoteManagerStatic.StartupRemoteRendering(managerInit);
RemoteRenderingInitialization managerInit; managerInit.GraphicsApi = GraphicsApiType::OpenXrD3D11; managerInit.ConnectionType = ConnectionType::General; managerInit.Right = ///... StartupRemoteRendering(managerInit); // static function in namespace Microsoft::Azure::RemoteRendering
RenderingSession currentSession = ...; ulong space = ...; // XrSpace cast to ulong GraphicsBindingOpenXrD3d11 openXrBinding = (currentSession.GraphicsBinding as GraphicsBindingOpenXrD3d11); if (openXrBinding.UpdateAppSpace(space) == Result.Success) { ... }
ApiHandle<RenderingSession> currentSession = ...; XrSpace space = ...; ApiHandle<GraphicsBindingOpenXrD3d11> openXrBinding = currentSession->GetGraphicsBinding().as<GraphicsBindingOpenXrD3d11>(); #ifdef _M_ARM64 if (openXrBinding->UpdateAppSpace(reinterpret_cast<uint64_t>(space)) == Result::Success) #else if (openXrBinding->UpdateAppSpace(space) == Result::Success) #endif { ... }
ApiHandle<RenderingSession> currentSession = ...; ApiHandle<GraphicsBindingOpenXrD3d11> openXrBinding = currentSession->GetGraphicsBinding().as<GraphicsBindingOpenXrD3d11>(); openXrBinding->BlitRemoteFrame();
RenderingSession currentSession = ...; IntPtr ptr = ...; // native pointer to ISpatialCoordinateSystem GraphicsBindingWmrD3d11 wmrBinding = (currentSession.GraphicsBinding as GraphicsBindingWmrD3d11); if (wmrBinding.UpdateUserCoordinateSystem(ptr) == Result.Success) { ... }
ApiHandle<RenderingSession> currentSession = ...; void* ptr = ...; // native pointer to ISpatialCoordinateSystem ApiHandle<GraphicsBindingWmrD3d11> wmrBinding = currentSession->GetGraphicsBinding().as<GraphicsBindingWmrD3d11>(); if (wmrBinding->UpdateUserCoordinateSystem(ptr) == Result::Success) { ... }
RenderingSession currentSession = ...; GraphicsBindingWmrD3d11 wmrBinding = (currentSession.GraphicsBinding as GraphicsBindingWmrD3d11); wmrBinding.BlitRemoteFrame();
ApiHandle<RenderingSession> currentSession = ...; ApiHandle<GraphicsBindingWmrD3d11> wmrBinding = currentSession->GetGraphicsBinding().as<GraphicsBindingWmrD3d11>(); wmrBinding->BlitRemoteFrame();
RenderingSession currentSession = ...; IntPtr d3dDevice = ...; // native pointer to ID3D11Device IntPtr color = ...; // native pointer to ID3D11Texture2D IntPtr depth = ...; // native pointer to ID3D11Texture2D float refreshRate = 60.0f; // Monitor refresh rate up to 60hz. bool flipBlitRemoteFrameTextureVertically = false; bool flipReprojectTextureVertically = false; bool stereoscopicRendering = false; GraphicsBindingSimD3d11 simBinding = (currentSession.GraphicsBinding as GraphicsBindingSimD3d11); simBinding.InitSimulation(d3dDevice, depth, color, refreshRate, flipBlitRemoteFrameTextureVertically, flipReprojectTextureVertically, stereoscopicRendering);
ApiHandle<RenderingSession> currentSession = ...; void* d3dDevice = ...; // native pointer to ID3D11Device void* color = ...; // native pointer to ID3D11Texture2D void* depth = ...; // native pointer to ID3D11Texture2D float refreshRate = 60.0f; // Monitor refresh rate up to 60hz. bool flipBlitRemoteFrameTextureVertically = false; bool flipReprojectTextureVertically = false; bool stereoscopicRendering = false; ApiHandle<GraphicsBindingSimD3d11> simBinding = currentSession->GetGraphicsBinding().as<GraphicsBindingSimD3d11>(); simBinding->InitSimulation(d3dDevice, depth, color, refreshRate, flipBlitRemoteFrameTextureVertically, flipReprojectTextureVertically, stereoscopicRendering);
RenderingSession currentSession = ...; GraphicsBindingSimD3d11 simBinding = (currentSession.GraphicsBinding as GraphicsBindingSimD3d11); SimulationUpdateParameters updateParameters = new SimulationUpdateParameters(); // Fill out camera data with current camera data // (see "Simulation Update structures" section below) ... SimulationUpdateResult updateResult = new SimulationUpdateResult(); simBinding.Update(updateParameters, out updateResult); // Is the frame data valid? if (updateResult.FrameId != 0) { // Bind proxy render target simBinding.BlitRemoteFrameToProxy(); // Use proxy camera data to render local content ... // Bind back buffer simBinding.ReprojectProxy(); } else { // Bind back buffer // Use current camera data to render local content ... }
ApiHandle<RenderingSession> currentSession; ApiHandle<GraphicsBindingSimD3d11> simBinding = currentSession->GetGraphicsBinding().as<GraphicsBindingSimD3d11>(); SimulationUpdateParameters updateParameters; // Fill out camera data with current camera data // (see "Simulation Update structures" section below) ... SimulationUpdateResult updateResult; simBinding->Update(updateParameters, &updateResult); // Is the frame data valid? if (updateResult.FrameId != 0) { // Bind proxy render target simBinding->BlitRemoteFrameToProxy(); // Use proxy camera data to render local content ... // Bind back buffer simBinding->ReprojectProxy(); } else { // Bind back buffer // Use current camera data to render local content ... }