Skip to content

ImmediateDebugRenderFeature incompatible with OpenGL/Vulkan which is required for Linux #277

@Doprez

Description

@Doprez

Running some Linux tests today and I found out that the ImmediateDebugRenderFeature will not work on Linux due to a shader compilation failure.

[CustomGame]: Error: Unexpected exception. System.InvalidOperationException: Error while compiling GLSL shader. [0(36) : error C0000: syntax error, unexpected '<', expecting '{' at token "<"
0(37) : error C0000: syntax error, unexpected '<', expecting '{' at token "<"
0(44) : error C1503: undefined variable "asuint"
0(60) : error C1503: undefined variable "Transforms_id16"
0(61) : error C1503: undefined variable "Colors_id17"
]
   at Stride.Graphics.EffectProgram.CreateShaders()
   at Stride.Graphics.EffectProgram..ctor(GraphicsDevice device, EffectBytecode bytecode, Boolean emulateDepthClamp)
   at Stride.Graphics.PipelineState.DevicePipelineStateCache.<>c__DisplayClass2_0.<.ctor>b__1(Tuple`2 source)
   at Stride.Graphics.PipelineState.GraphicsCache`3.Instantiate(TSource source)
   at Stride.Graphics.PipelineState..ctor(GraphicsDevice graphicsDevice, PipelineStateDescription pipelineStateDescription)
   at Stride.Graphics.PipelineState.New(GraphicsDevice graphicsDevice, PipelineStateDescription& pipelineStateDescription)
   at Stride.Graphics.MutablePipelineState.Update()
   at WorldOfMight.Guilds.DebugShapesRendering.ImmediateDebugRenderFeature.SetPrimitiveRenderingPipelineState(CommandList commandList, Boolean depthTest, FillMode selectedFillMode, Boolean isDoubleSided, Boolean hasTransparency) in D:\dev\GitControlledProjects\world-of-might-guilds\src\WorldOfMight.Guilds\DebugShapesRendering\ImmediateDebugRenderFeature.cs:line 682
   at WorldOfMight.Guilds.DebugShapesRendering.ImmediateDebugRenderFeature.Draw(RenderDrawContext context, RenderView renderView, RenderViewStage renderViewStage, Int32 startIndex, Int32 endIndex) in D:\dev\GitControlledProjects\world-of-might-guilds\src\WorldOfMight.Guilds\DebugShapesRendering\ImmediateDebugRenderFeature.cs:line 849
   at Stride.Rendering.RenderSystem.Draw(RenderDrawContext renderDrawContext, RenderView renderView, RenderStage renderStage) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Rendering\Rendering\RenderSystem.cs:line 378
   at Stride.Rendering.Compositing.ForwardRenderer.DrawView(RenderContext context, RenderDrawContext drawContext, Int32 eyeIndex, Int32 eyeCount) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Engine\Rendering\Compositing\ForwardRenderer.cs:line 527
   at Stride.Rendering.Compositing.ForwardRenderer.DrawCore(RenderContext context, RenderDrawContext drawContext) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Engine\Rendering\Compositing\ForwardRenderer.cs:line 754
   at Stride.Rendering.Compositing.SceneRendererBase.Draw(RenderDrawContext context) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Rendering\Rendering\Compositing\SceneRendererBase.cs:line 39
   at Stride.Rendering.Compositing.SceneRendererCollection.DrawCore(RenderContext context, RenderDrawContext drawContext) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Rendering\Rendering\Compositing\SceneRendererCollection.cs:line 30
   at Stride.Rendering.Compositing.SceneRendererBase.Draw(RenderDrawContext context) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Rendering\Rendering\Compositing\SceneRendererBase.cs:line 39
   at Stride.Rendering.Compositing.SceneCameraRenderer.DrawInner(RenderDrawContext renderContext) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Engine\Rendering\Compositing\SceneCameraRenderer.cs:line 108
   at Stride.Rendering.Compositing.SceneCameraRenderer.DrawCore(RenderContext context, RenderDrawContext drawContext) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Engine\Rendering\Compositing\SceneCameraRenderer.cs:line 72
   at Stride.Rendering.Compositing.SceneRendererBase.Draw(RenderDrawContext context) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Rendering\Rendering\Compositing\SceneRendererBase.cs:line 39
   at Stride.Rendering.Compositing.GraphicsCompositor.DrawCore(RenderDrawContext context) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Engine\Rendering\Compositing\GraphicsCompositor.cs:line 232
   at Stride.Rendering.RendererBase.Draw(RenderDrawContext context) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Rendering\Rendering\RendererBase.cs:line 51
   at Stride.Engine.SceneSystem.Draw(GameTime gameTime) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Engine\Engine\SceneSystem.cs:line 234
   at Stride.Games.GameSystemCollection.Draw(GameTime gameTime)
   at Stride.Games.GameBase.Draw(GameTime gameTime)
   at Stride.Games.GameBase.RawTick(TimeSpan elapsedTimePerUpdate, Int32 updateCount, Single drawInterpolationFactor, Boolean drawFrame)
   at Stride.Games.GameBase.RawTickProducer()
System.InvalidOperationException: Error while compiling GLSL shader. [0(36) : error C0000: syntax error, unexpected '<', expecting '{' at token "<"
0(37) : error C0000: syntax error, unexpected '<', expecting '{' at token "<"
0(44) : error C1503: undefined variable "asuint"
0(60) : error C1503: undefined variable "Transforms_id16"
0(61) : error C1503: undefined variable "Colors_id17"
]
   at Stride.Graphics.EffectProgram.CreateShaders()
   at Stride.Graphics.EffectProgram..ctor(GraphicsDevice device, EffectBytecode bytecode, Boolean emulateDepthClamp)
   at Stride.Graphics.PipelineState.DevicePipelineStateCache.<>c__DisplayClass2_0.<.ctor>b__1(Tuple`2 source)
   at Stride.Graphics.PipelineState.GraphicsCache`3.Instantiate(TSource source)
   at Stride.Graphics.PipelineState..ctor(GraphicsDevice graphicsDevice, PipelineStateDescription pipelineStateDescription)
   at Stride.Graphics.PipelineState.New(GraphicsDevice graphicsDevice, PipelineStateDescription& pipelineStateDescription)
   at Stride.Graphics.MutablePipelineState.Update()
   at WorldOfMight.Guilds.DebugShapesRendering.ImmediateDebugRenderFeature.SetPrimitiveRenderingPipelineState(CommandList commandList, Boolean depthTest, FillMode selectedFillMode, Boolean isDoubleSided, Boolean hasTransparency) in D:\dev\GitControlledProjects\world-of-might-guilds\src\WorldOfMight.Guilds\DebugShapesRendering\ImmediateDebugRenderFeature.cs:line 682
   at WorldOfMight.Guilds.DebugShapesRendering.ImmediateDebugRenderFeature.Draw(RenderDrawContext context, RenderView renderView, RenderViewStage renderViewStage, Int32 startIndex, Int32 endIndex) in D:\dev\GitControlledProjects\world-of-might-guilds\src\WorldOfMight.Guilds\DebugShapesRendering\ImmediateDebugRenderFeature.cs:line 849
   at Stride.Rendering.RenderSystem.Draw(RenderDrawContext renderDrawContext, RenderView renderView, RenderStage renderStage) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Rendering\Rendering\RenderSystem.cs:line 378
   at Stride.Rendering.Compositing.ForwardRenderer.DrawView(RenderContext context, RenderDrawContext drawContext, Int32 eyeIndex, Int32 eyeCount) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Engine\Rendering\Compositing\ForwardRenderer.cs:line 527
   at Stride.Rendering.Compositing.ForwardRenderer.DrawCore(RenderContext context, RenderDrawContext drawContext) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Engine\Rendering\Compositing\ForwardRenderer.cs:line 754
   at Stride.Rendering.Compositing.SceneRendererBase.Draw(RenderDrawContext context) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Rendering\Rendering\Compositing\SceneRendererBase.cs:line 39
   at Stride.Rendering.Compositing.SceneRendererCollection.DrawCore(RenderContext context, RenderDrawContext drawContext) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Rendering\Rendering\Compositing\SceneRendererCollection.cs:line 30
   at Stride.Rendering.Compositing.SceneRendererBase.Draw(RenderDrawContext context) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Rendering\Rendering\Compositing\SceneRendererBase.cs:line 39
   at Stride.Rendering.Compositing.SceneCameraRenderer.DrawInner(RenderDrawContext renderContext) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Engine\Rendering\Compositing\SceneCameraRenderer.cs:line 108
   at Stride.Rendering.Compositing.SceneCameraRenderer.DrawCore(RenderContext context, RenderDrawContext drawContext) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Engine\Rendering\Compositing\SceneCameraRenderer.cs:line 72
   at Stride.Rendering.Compositing.SceneRendererBase.Draw(RenderDrawContext context) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Rendering\Rendering\Compositing\SceneRendererBase.cs:line 39
   at Stride.Rendering.Compositing.GraphicsCompositor.DrawCore(RenderDrawContext context) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Engine\Rendering\Compositing\GraphicsCompositor.cs:line 232
   at Stride.Rendering.RendererBase.Draw(RenderDrawContext context) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Rendering\Rendering\RendererBase.cs:line 51
   at Stride.Engine.SceneSystem.Draw(GameTime gameTime) in D:\dev\GitControlledProjects\stride\sources\engine\Stride.Engine\Engine\SceneSystem.cs:line 234
   at Stride.Games.GameSystemCollection.Draw(GameTime gameTime)
   at Stride.Games.GameBase.Draw(GameTime gameTime)
   at Stride.Games.GameBase.RawTick(TimeSpan elapsedTimePerUpdate, Int32 updateCount, Single drawInterpolationFactor, Boolean drawFrame)
   at Stride.Games.GameBase.RawTickProducer()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions