mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40: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_buffer(GL_TEXTURE_BUFFER, TEXTURE_BUFFER_SIZE, false), | ||||||
|       texture_lf_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 && |     allow_shadow = GLES || (GLAD_GL_ARB_shader_image_load_store && GLAD_GL_ARB_shader_image_size && | ||||||
|                    GLAD_GL_ARB_framebuffer_no_attachments; |                             GLAD_GL_ARB_framebuffer_no_attachments); | ||||||
|     if (!allow_shadow) { |     if (!allow_shadow) { | ||||||
|         LOG_WARNING(Render_OpenGL, |         LOG_WARNING(Render_OpenGL, | ||||||
|                     "Shadow might not be able to render because of unsupported OpenGL extensions."); |                     "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, | ShaderDecompiler::ProgramResult GenerateFragmentShader(const PicaFSConfig& config, | ||||||
|                                                        bool separable_shader) { |                                                        bool separable_shader) { | ||||||
|     const auto& state = config.state; |     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_load_store : enable | ||||||
| #extension GL_ARB_shader_image_size : enable | #extension GL_ARB_shader_image_size : enable | ||||||
| #define ALLOW_SHADOW (defined(GL_ARB_shader_image_load_store) && defined(GL_ARB_shader_image_size)) | #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"; |         out += "#extension GL_ARB_separate_shader_objects : enable\n"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -1612,7 +1619,7 @@ do { | ||||||
| 
 | 
 | ||||||
| ShaderDecompiler::ProgramResult GenerateTrivialVertexShader(bool separable_shader) { | ShaderDecompiler::ProgramResult GenerateTrivialVertexShader(bool separable_shader) { | ||||||
|     std::string out; |     std::string out; | ||||||
|     if (separable_shader) { |     if (separable_shader && !GLES) { | ||||||
|         out += "#extension GL_ARB_separate_shader_objects : enable\n"; |         out += "#extension GL_ARB_separate_shader_objects : enable\n"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -1655,8 +1662,8 @@ void main() { | ||||||
| 
 | 
 | ||||||
| std::optional<ShaderDecompiler::ProgramResult> GenerateVertexShader( | std::optional<ShaderDecompiler::ProgramResult> GenerateVertexShader( | ||||||
|     const Pica::Shader::ShaderSetup& setup, const PicaVSConfig& config, bool separable_shader) { |     const Pica::Shader::ShaderSetup& setup, const PicaVSConfig& config, bool separable_shader) { | ||||||
|     std::string out = ""; |     std::string out; | ||||||
|     if (separable_shader) { |     if (separable_shader && !GLES) { | ||||||
|         out += "#extension GL_ARB_separate_shader_objects : enable\n"; |         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, | ShaderDecompiler::ProgramResult GenerateFixedGeometryShader(const PicaFixedGSConfig& config, | ||||||
|                                                             bool separable_shader) { |                                                             bool separable_shader) { | ||||||
|     std::string out = ""; |     std::string out; | ||||||
|     if (separable_shader) { |     if (separable_shader && !GLES) { | ||||||
|         out += "#extension GL_ARB_separate_shader_objects : enable\n\n"; |         out += "#extension GL_ARB_separate_shader_objects : enable\n\n"; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue