mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	android: video_core: Enable HW shadows and texture barrier on GLES.
This commit is contained in:
		
							parent
							
								
									e028eb91c0
								
							
						
					
					
						commit
						8a06463c97
					
				
					 2 changed files with 16 additions and 9 deletions
				
			
		|  | @ -55,8 +55,8 @@ RasterizerOpenGL::RasterizerOpenGL() | |||
|       texture_buffer(GL_TEXTURE_BUFFER, TEXTURE_BUFFER_SIZE, false), | ||||
|       texture_lf_buffer(GL_TEXTURE_BUFFER, TEXTURE_BUFFER_SIZE, false) { | ||||
| 
 | ||||
|     allow_shadow = GLAD_GL_ARB_shader_image_load_store && GLAD_GL_ARB_shader_image_size && | ||||
|                    GLAD_GL_ARB_framebuffer_no_attachments; | ||||
|     allow_shadow = GLES || (GLAD_GL_ARB_shader_image_load_store && GLAD_GL_ARB_shader_image_size && | ||||
|                             GLAD_GL_ARB_framebuffer_no_attachments); | ||||
|     if (!allow_shadow) { | ||||
|         LOG_WARNING(Render_OpenGL, | ||||
|                     "Shadow might not be able to render because of unsupported OpenGL extensions."); | ||||
|  |  | |||
|  | @ -1227,14 +1227,21 @@ float ProcTexNoiseCoef(vec2 x) { | |||
| ShaderDecompiler::ProgramResult GenerateFragmentShader(const PicaFSConfig& config, | ||||
|                                                        bool separable_shader) { | ||||
|     const auto& state = config.state; | ||||
|     std::string out; | ||||
| 
 | ||||
|     std::string out = R"( | ||||
|     if (GLES) { | ||||
|         out += R"( | ||||
| #define ALLOW_SHADOW (defined(CITRA_GLES)) | ||||
| )"; | ||||
|     } else { | ||||
|         out += R"( | ||||
| #extension GL_ARB_shader_image_load_store : enable | ||||
| #extension GL_ARB_shader_image_size : enable | ||||
| #define ALLOW_SHADOW (defined(GL_ARB_shader_image_load_store) && defined(GL_ARB_shader_image_size)) | ||||
| )"; | ||||
|     } | ||||
| 
 | ||||
|     if (separable_shader) { | ||||
|     if (separable_shader && !GLES) { | ||||
|         out += "#extension GL_ARB_separate_shader_objects : enable\n"; | ||||
|     } | ||||
| 
 | ||||
|  | @ -1612,7 +1619,7 @@ do { | |||
| 
 | ||||
| ShaderDecompiler::ProgramResult GenerateTrivialVertexShader(bool separable_shader) { | ||||
|     std::string out; | ||||
|     if (separable_shader) { | ||||
|     if (separable_shader && !GLES) { | ||||
|         out += "#extension GL_ARB_separate_shader_objects : enable\n"; | ||||
|     } | ||||
| 
 | ||||
|  | @ -1655,8 +1662,8 @@ void main() { | |||
| 
 | ||||
| std::optional<ShaderDecompiler::ProgramResult> GenerateVertexShader( | ||||
|     const Pica::Shader::ShaderSetup& setup, const PicaVSConfig& config, bool separable_shader) { | ||||
|     std::string out = ""; | ||||
|     if (separable_shader) { | ||||
|     std::string out; | ||||
|     if (separable_shader && !GLES) { | ||||
|         out += "#extension GL_ARB_separate_shader_objects : enable\n"; | ||||
|     } | ||||
| 
 | ||||
|  | @ -1805,8 +1812,8 @@ void EmitPrim(Vertex vtx0, Vertex vtx1, Vertex vtx2) { | |||
| 
 | ||||
| ShaderDecompiler::ProgramResult GenerateFixedGeometryShader(const PicaFixedGSConfig& config, | ||||
|                                                             bool separable_shader) { | ||||
|     std::string out = ""; | ||||
|     if (separable_shader) { | ||||
|     std::string out; | ||||
|     if (separable_shader && !GLES) { | ||||
|         out += "#extension GL_ARB_separate_shader_objects : enable\n\n"; | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue