OtisInf wrote: "Added support to render point and line primitives from effects"



Is there an example for this? I.e. do I need to build a vertex buffer from a pixelshader pass and then have this pass to render the points?

#define NUM_LINES 5 void MyVS(uint id : SV_VERTEXID, out float4 pos : SV_POSITION) { pos = float4((id / float(NUM_LINES * 2 - 1)) * 2 - 1, 0, 0, 1); } void MyPS(float4 pos : SV_POSITION, out float4 col : SV_TARGET) { col = float4(1, 0, 0, 1); } technique Lines { pass { VertexShader = MyVS; PixelShader = MyPS; PrimitiveTopology = LINELIST; VertexCount = NUM_LINES * 2; } }

JoeStapf wrote: Failed to compile (68,1) Undetermined String Liternal <- Might not be the exact message, my memory is poo. But it fails to compile non-the-less.

It works the same as for triangles: Your vertex shader is invoked for each vertex and can be used to calculate where to put them.For POINTLIST primitives that effectively means every vertex becomes a point, for LINELIST every two vertices a separate line, LINESTRIP connects all vertices together to one interconnected line, TRIANGLELIST is the default as it was before and means every three vertices become a triangle, TRIANGLESTRIP connects all triangles together again (every additional vertex creates a full triangle with that vertex + the previous two ones).The number of vertices ReShade should generate is specified via the "VertexCount" pass state. You then use the vertex id "SV_VertexID" in the vertex shader (which is in the range [0, VertexCount[) to identify them.Example: This is a vertex shader that creates 5 red interrupted lines horizontally across the center of the screen:Replace LINELIST with LINESTRIP and they become fully interconnected. See also docs.microsoft.com/de-de/windows/win32/direct3d9/primitives Contact the shader author, that's an error in their code that they need to fix.