-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VideoCommon: Merge LineGeometryShader into GeometryShaderGen. #1706
Conversation
|
||
D3D::stateman->SetGeometryShader(nullptr); | ||
} | ||
D3D::stateman->SetGeometryShader(nullptr); | ||
} |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
…riable name in both backends.
And make more stereoscopy code optional.
This adds line-width emulation support to OpenGL.
This adds point-width emulation support to OpenGL.
"triangle" | ||
}; | ||
|
||
template<class T> static inline void EmitVertex(T& out, const char *vertex, API_TYPE ApiType); |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
"Check for geometry shader support in the API (OpenGL ES)." And what do we do if a game tries to draw a line or point without geometry shader support? Draw nothing? Do vertex processing on the CPU? Something else? Or should Dolphin just refuse to start without geometry shader support? |
IIRC OpenGL ES didn't support the old method either, so we just don't draw anything which is what happens now when you try to draw lines or points on OpenGL ES. |
@Armada651 No, we just don't use the geometry shader and hope that no feature will be used. It's very often wrong for points, but lines usually works fine. |
@degasus Also good, either way nothing changes in the to-do list. ;) |
51606b3
to
bf1ee9e
Compare
@@ -97,13 +97,17 @@ void VertexManager::Draw(u32 stride) | |||
u32 max_index = IndexGenerator::GetNumVerts(); | |||
GLenum primitive_mode = 0; | |||
|
|||
glPushAttrib(GL_CULL_FACE); |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
@Sonicadvance1 Please test if OpenGL ES is currently compatible with this branch. |
333e3e5
to
d5ccb7e
Compare
} | ||
else | ||
{ | ||
constants.stereoparams[0] = constants.stereoparams[1] = 0; |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
code LGTM, but I still want to test it first. |
NVM, I'm an idiot of course the savestates would be different, I think. LGTM again on testing otherwise. |
#include "VideoCommon/XFMemory.h" | ||
|
||
// track changes | ||
static bool s_projection_changed, s_viewport_changed, s_lineptwidth_changed; |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
damn mesa: http://pastie.org/ |
} | ||
else if (strstr(g_ogl_config.glsl_version, "1.40")) | ||
{ | ||
g_ogl_config.eSupportedGLSLVersion = GLSL_140; | ||
g_Config.backend_info.bSupportsEarlyZ = false; // layout keyword is only supported on glsl150+ | ||
g_Config.backend_info.bSupportsStereoscopy = false; // geometry shaders are only supported on glsl150+ | ||
g_Config.backend_info.bSupportsGeometryShaders = false; // geometry shaders are only supported on glsl150+ | ||
} | ||
else |
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This comment was marked as off-topic.
This comment was marked as off-topic.
Sorry, something went wrong.
This commit repurposes the bSupportsStereoscopy flag as the bSupportsGeometryShaders flag.
And refactor the VertexManager draw call.
…haders are unsupported.
This branch is ready for merge. |
VideoCommon: Merge LineGeometryShader into GeometryShaderGen.
This adds line-width emulation support to OpenGL, with stereoscopy support to boot!
To-Do