glasm: Add passthrough geometry shader support

This commit is contained in:
ReinUsesLisp 2021-06-24 17:40:24 -03:00 committed by ameerj
parent 7dafa96ab5
commit 8a3427a4c8
5 changed files with 33 additions and 8 deletions

View file

@ -160,6 +160,7 @@ Device::Device() {
has_vertex_buffer_unified_memory = GLAD_GL_NV_vertex_buffer_unified_memory;
has_debugging_tool_attached = IsDebugToolAttached(extensions);
has_depth_buffer_float = HasExtension(extensions, "GL_NV_depth_buffer_float");
has_geometry_shader_passthrough = GLAD_GL_NV_geometry_shader_passthrough;
has_nv_gpu_shader_5 = GLAD_GL_NV_gpu_shader5;
has_shader_int64 = HasExtension(extensions, "GL_ARB_gpu_shader_int64");
has_amd_shader_half_float = GLAD_GL_AMD_gpu_shader_half_float;

View file

@ -120,6 +120,10 @@ public:
return has_depth_buffer_float;
}
bool HasGeometryShaderPassthrough() const {
return has_geometry_shader_passthrough;
}
bool HasNvGpuShader5() const {
return has_nv_gpu_shader_5;
}
@ -174,6 +178,7 @@ private:
bool use_asynchronous_shaders{};
bool use_driver_cache{};
bool has_depth_buffer_float{};
bool has_geometry_shader_passthrough{};
bool has_nv_gpu_shader_5{};
bool has_shader_int64{};
bool has_amd_shader_half_float{};

View file

@ -187,7 +187,7 @@ ShaderCache::ShaderCache(RasterizerOpenGL& rasterizer_, Core::Frontend::EmuWindo
.support_demote_to_helper_invocation = false,
.support_int64_atomics = false,
.support_derivative_control = device.HasDerivativeControl(),
.support_geometry_shader_passthrough = false, // TODO
.support_geometry_shader_passthrough = device.HasGeometryShaderPassthrough(),
.support_gl_nv_gpu_shader_5 = device.HasNvGpuShader5(),
.support_gl_amd_gpu_shader_half_float = device.HasAmdShaderHalfFloat(),
.support_gl_texture_shadow_lod = device.HasTextureShadowLod(),