mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	video_core: Fix fragment shader interlock usage on OpenGL. (#7144)
This commit is contained in:
		
							parent
							
								
									13d02c14e0
								
							
						
					
					
						commit
						d4f31bc617
					
				
					 8 changed files with 69 additions and 14 deletions
				
			
		
							
								
								
									
										6
									
								
								externals/glad/Readme.md
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								externals/glad/Readme.md
									
										
									
									
										vendored
									
									
								
							|  | @ -3,3 +3,9 @@ These files were generated by the [glad](https://github.com/Dav1dde/glad) OpenGL | |||
| ``` | ||||
| python -m glad --profile core --out-path glad/ --api "gl=4.3,gles2=3.2" --generator=c | ||||
| ``` | ||||
| 
 | ||||
| You can also generate the source using [this site](https://glad.dav1d.de/): | ||||
| 1. Select '4.3' for GL, '3.2' for GLES2, and 'Core' for Profile. | ||||
| 2. Input the currently supported extensions from [here](https://github.com/citra-emu/citra/blob/master/externals/glad/include/glad/glad.h#L9), plus any new required extensions. | ||||
| 3. Click Generate and download the generated source zip. | ||||
| 4. Unzip the new source over the current glad source files. | ||||
							
								
								
									
										27
									
								
								externals/glad/include/glad/glad.h
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								externals/glad/include/glad/glad.h
									
										
									
									
										vendored
									
									
								
							|  | @ -1,6 +1,6 @@ | |||
| /*
 | ||||
| 
 | ||||
|     OpenGL, OpenGL ES loader generated by glad 0.1.34 on Sat Aug 26 18:38:43 2023. | ||||
|     OpenGL, OpenGL ES loader generated by glad 0.1.36 on Fri Nov 10 04:24:01 2023. | ||||
| 
 | ||||
|     Language/Generator: C/C++ | ||||
|     Specification: gl | ||||
|  | @ -10,6 +10,7 @@ | |||
|         GL_AMD_blend_minmax_factor, | ||||
|         GL_ARB_buffer_storage, | ||||
|         GL_ARB_clear_texture, | ||||
|         GL_ARB_fragment_shader_interlock, | ||||
|         GL_ARB_get_texture_sub_image, | ||||
|         GL_ARB_texture_compression_bptc, | ||||
|         GL_ARM_shader_framebuffer_fetch, | ||||
|  | @ -17,16 +18,18 @@ | |||
|         GL_EXT_clip_cull_distance, | ||||
|         GL_EXT_shader_framebuffer_fetch, | ||||
|         GL_EXT_texture_compression_s3tc, | ||||
|         GL_NV_blend_minmax_factor | ||||
|         GL_INTEL_fragment_shader_ordering, | ||||
|         GL_NV_blend_minmax_factor, | ||||
|         GL_NV_fragment_shader_interlock | ||||
|     Loader: True | ||||
|     Local files: False | ||||
|     Omit khrplatform: False | ||||
|     Reproducible: False | ||||
| 
 | ||||
|     Commandline: | ||||
|         --profile="core" --api="gl=4.3,gles2=3.2" --generator="c" --spec="gl" --extensions="GL_AMD_blend_minmax_factor,GL_ARB_buffer_storage,GL_ARB_clear_texture,GL_ARB_get_texture_sub_image,GL_ARB_texture_compression_bptc,GL_ARM_shader_framebuffer_fetch,GL_EXT_buffer_storage,GL_EXT_clip_cull_distance,GL_EXT_shader_framebuffer_fetch,GL_EXT_texture_compression_s3tc,GL_NV_blend_minmax_factor" | ||||
|         --profile="core" --api="gl=4.3,gles2=3.2" --generator="c" --spec="gl" --extensions="GL_AMD_blend_minmax_factor,GL_ARB_buffer_storage,GL_ARB_clear_texture,GL_ARB_fragment_shader_interlock,GL_ARB_get_texture_sub_image,GL_ARB_texture_compression_bptc,GL_ARM_shader_framebuffer_fetch,GL_EXT_buffer_storage,GL_EXT_clip_cull_distance,GL_EXT_shader_framebuffer_fetch,GL_EXT_texture_compression_s3tc,GL_INTEL_fragment_shader_ordering,GL_NV_blend_minmax_factor,GL_NV_fragment_shader_interlock" | ||||
|     Online: | ||||
|         https://glad.dav1d.de/#profile=core&language=c&specification=gl&loader=on&api=gl%3D4.3&api=gles2%3D3.2&extensions=GL_AMD_blend_minmax_factor&extensions=GL_ARB_buffer_storage&extensions=GL_ARB_clear_texture&extensions=GL_ARB_get_texture_sub_image&extensions=GL_ARB_texture_compression_bptc&extensions=GL_ARM_shader_framebuffer_fetch&extensions=GL_EXT_buffer_storage&extensions=GL_EXT_clip_cull_distance&extensions=GL_EXT_shader_framebuffer_fetch&extensions=GL_EXT_texture_compression_s3tc&extensions=GL_NV_blend_minmax_factor
 | ||||
|         https://glad.dav1d.de/#profile=core&language=c&specification=gl&loader=on&api=gl%3D4.3&api=gles2%3D3.2&extensions=GL_AMD_blend_minmax_factor&extensions=GL_ARB_buffer_storage&extensions=GL_ARB_clear_texture&extensions=GL_ARB_fragment_shader_interlock&extensions=GL_ARB_get_texture_sub_image&extensions=GL_ARB_texture_compression_bptc&extensions=GL_ARM_shader_framebuffer_fetch&extensions=GL_EXT_buffer_storage&extensions=GL_EXT_clip_cull_distance&extensions=GL_EXT_shader_framebuffer_fetch&extensions=GL_EXT_texture_compression_s3tc&extensions=GL_INTEL_fragment_shader_ordering&extensions=GL_NV_blend_minmax_factor&extensions=GL_NV_fragment_shader_interlock
 | ||||
| */ | ||||
| 
 | ||||
| 
 | ||||
|  | @ -3384,6 +3387,10 @@ typedef void (APIENTRYP PFNGLCLEARTEXSUBIMAGEPROC)(GLuint texture, GLint level, | |||
| GLAPI PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage; | ||||
| #define glClearTexSubImage glad_glClearTexSubImage | ||||
| #endif | ||||
| #ifndef GL_ARB_fragment_shader_interlock | ||||
| #define GL_ARB_fragment_shader_interlock 1 | ||||
| GLAPI int GLAD_GL_ARB_fragment_shader_interlock; | ||||
| #endif | ||||
| #ifndef GL_ARB_get_texture_sub_image | ||||
| #define GL_ARB_get_texture_sub_image 1 | ||||
| GLAPI int GLAD_GL_ARB_get_texture_sub_image; | ||||
|  | @ -3406,10 +3413,18 @@ GLAPI int GLAD_GL_EXT_shader_framebuffer_fetch; | |||
| #define GL_EXT_texture_compression_s3tc 1 | ||||
| GLAPI int GLAD_GL_EXT_texture_compression_s3tc; | ||||
| #endif | ||||
| #ifndef GL_INTEL_fragment_shader_ordering | ||||
| #define GL_INTEL_fragment_shader_ordering 1 | ||||
| GLAPI int GLAD_GL_INTEL_fragment_shader_ordering; | ||||
| #endif | ||||
| #ifndef GL_NV_blend_minmax_factor | ||||
| #define GL_NV_blend_minmax_factor 1 | ||||
| GLAPI int GLAD_GL_NV_blend_minmax_factor; | ||||
| #endif | ||||
| #ifndef GL_NV_fragment_shader_interlock | ||||
| #define GL_NV_fragment_shader_interlock 1 | ||||
| GLAPI int GLAD_GL_NV_fragment_shader_interlock; | ||||
| #endif | ||||
| #ifndef GL_ARM_shader_framebuffer_fetch | ||||
| #define GL_ARM_shader_framebuffer_fetch 1 | ||||
| GLAPI int GLAD_GL_ARM_shader_framebuffer_fetch; | ||||
|  | @ -3437,6 +3452,10 @@ GLAPI int GLAD_GL_EXT_texture_compression_s3tc; | |||
| #define GL_NV_blend_minmax_factor 1 | ||||
| GLAPI int GLAD_GL_NV_blend_minmax_factor; | ||||
| #endif | ||||
| #ifndef GL_NV_fragment_shader_interlock | ||||
| #define GL_NV_fragment_shader_interlock 1 | ||||
| GLAPI int GLAD_GL_NV_fragment_shader_interlock; | ||||
| #endif | ||||
| 
 | ||||
| #ifdef __cplusplus | ||||
| } | ||||
|  |  | |||
							
								
								
									
										18
									
								
								externals/glad/src/glad.c
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								externals/glad/src/glad.c
									
										
									
									
										vendored
									
									
								
							|  | @ -1,6 +1,6 @@ | |||
| /*
 | ||||
| 
 | ||||
|     OpenGL, OpenGL ES loader generated by glad 0.1.34 on Sat Aug 26 18:38:43 2023. | ||||
|     OpenGL, OpenGL ES loader generated by glad 0.1.36 on Fri Nov 10 04:24:01 2023. | ||||
| 
 | ||||
|     Language/Generator: C/C++ | ||||
|     Specification: gl | ||||
|  | @ -10,6 +10,7 @@ | |||
|         GL_AMD_blend_minmax_factor, | ||||
|         GL_ARB_buffer_storage, | ||||
|         GL_ARB_clear_texture, | ||||
|         GL_ARB_fragment_shader_interlock, | ||||
|         GL_ARB_get_texture_sub_image, | ||||
|         GL_ARB_texture_compression_bptc, | ||||
|         GL_ARM_shader_framebuffer_fetch, | ||||
|  | @ -17,16 +18,18 @@ | |||
|         GL_EXT_clip_cull_distance, | ||||
|         GL_EXT_shader_framebuffer_fetch, | ||||
|         GL_EXT_texture_compression_s3tc, | ||||
|         GL_NV_blend_minmax_factor | ||||
|         GL_INTEL_fragment_shader_ordering, | ||||
|         GL_NV_blend_minmax_factor, | ||||
|         GL_NV_fragment_shader_interlock | ||||
|     Loader: True | ||||
|     Local files: False | ||||
|     Omit khrplatform: False | ||||
|     Reproducible: False | ||||
| 
 | ||||
|     Commandline: | ||||
|         --profile="core" --api="gl=4.3,gles2=3.2" --generator="c" --spec="gl" --extensions="GL_AMD_blend_minmax_factor,GL_ARB_buffer_storage,GL_ARB_clear_texture,GL_ARB_get_texture_sub_image,GL_ARB_texture_compression_bptc,GL_ARM_shader_framebuffer_fetch,GL_EXT_buffer_storage,GL_EXT_clip_cull_distance,GL_EXT_shader_framebuffer_fetch,GL_EXT_texture_compression_s3tc,GL_NV_blend_minmax_factor" | ||||
|         --profile="core" --api="gl=4.3,gles2=3.2" --generator="c" --spec="gl" --extensions="GL_AMD_blend_minmax_factor,GL_ARB_buffer_storage,GL_ARB_clear_texture,GL_ARB_fragment_shader_interlock,GL_ARB_get_texture_sub_image,GL_ARB_texture_compression_bptc,GL_ARM_shader_framebuffer_fetch,GL_EXT_buffer_storage,GL_EXT_clip_cull_distance,GL_EXT_shader_framebuffer_fetch,GL_EXT_texture_compression_s3tc,GL_INTEL_fragment_shader_ordering,GL_NV_blend_minmax_factor,GL_NV_fragment_shader_interlock" | ||||
|     Online: | ||||
|         https://glad.dav1d.de/#profile=core&language=c&specification=gl&loader=on&api=gl%3D4.3&api=gles2%3D3.2&extensions=GL_AMD_blend_minmax_factor&extensions=GL_ARB_buffer_storage&extensions=GL_ARB_clear_texture&extensions=GL_ARB_get_texture_sub_image&extensions=GL_ARB_texture_compression_bptc&extensions=GL_ARM_shader_framebuffer_fetch&extensions=GL_EXT_buffer_storage&extensions=GL_EXT_clip_cull_distance&extensions=GL_EXT_shader_framebuffer_fetch&extensions=GL_EXT_texture_compression_s3tc&extensions=GL_NV_blend_minmax_factor
 | ||||
|         https://glad.dav1d.de/#profile=core&language=c&specification=gl&loader=on&api=gl%3D4.3&api=gles2%3D3.2&extensions=GL_AMD_blend_minmax_factor&extensions=GL_ARB_buffer_storage&extensions=GL_ARB_clear_texture&extensions=GL_ARB_fragment_shader_interlock&extensions=GL_ARB_get_texture_sub_image&extensions=GL_ARB_texture_compression_bptc&extensions=GL_ARM_shader_framebuffer_fetch&extensions=GL_EXT_buffer_storage&extensions=GL_EXT_clip_cull_distance&extensions=GL_EXT_shader_framebuffer_fetch&extensions=GL_EXT_texture_compression_s3tc&extensions=GL_INTEL_fragment_shader_ordering&extensions=GL_NV_blend_minmax_factor&extensions=GL_NV_fragment_shader_interlock
 | ||||
| */ | ||||
| 
 | ||||
| #include <stdio.h> | ||||
|  | @ -860,6 +863,7 @@ PFNGLWAITSYNCPROC glad_glWaitSync = NULL; | |||
| int GLAD_GL_AMD_blend_minmax_factor = 0; | ||||
| int GLAD_GL_ARB_buffer_storage = 0; | ||||
| int GLAD_GL_ARB_clear_texture = 0; | ||||
| int GLAD_GL_ARB_fragment_shader_interlock = 0; | ||||
| int GLAD_GL_ARB_get_texture_sub_image = 0; | ||||
| int GLAD_GL_ARB_texture_compression_bptc = 0; | ||||
| int GLAD_GL_ARM_shader_framebuffer_fetch = 0; | ||||
|  | @ -867,7 +871,9 @@ int GLAD_GL_EXT_buffer_storage = 0; | |||
| int GLAD_GL_EXT_clip_cull_distance = 0; | ||||
| int GLAD_GL_EXT_shader_framebuffer_fetch = 0; | ||||
| int GLAD_GL_EXT_texture_compression_s3tc = 0; | ||||
| int GLAD_GL_INTEL_fragment_shader_ordering = 0; | ||||
| int GLAD_GL_NV_blend_minmax_factor = 0; | ||||
| int GLAD_GL_NV_fragment_shader_interlock = 0; | ||||
| PFNGLBUFFERSTORAGEPROC glad_glBufferStorage = NULL; | ||||
| PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage = NULL; | ||||
| PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage = NULL; | ||||
|  | @ -1509,11 +1515,14 @@ static int find_extensionsGL(void) { | |||
| 	GLAD_GL_AMD_blend_minmax_factor = has_ext("GL_AMD_blend_minmax_factor"); | ||||
| 	GLAD_GL_ARB_buffer_storage = has_ext("GL_ARB_buffer_storage"); | ||||
| 	GLAD_GL_ARB_clear_texture = has_ext("GL_ARB_clear_texture"); | ||||
| 	GLAD_GL_ARB_fragment_shader_interlock = has_ext("GL_ARB_fragment_shader_interlock"); | ||||
| 	GLAD_GL_ARB_get_texture_sub_image = has_ext("GL_ARB_get_texture_sub_image"); | ||||
| 	GLAD_GL_ARB_texture_compression_bptc = has_ext("GL_ARB_texture_compression_bptc"); | ||||
| 	GLAD_GL_EXT_shader_framebuffer_fetch = has_ext("GL_EXT_shader_framebuffer_fetch"); | ||||
| 	GLAD_GL_EXT_texture_compression_s3tc = has_ext("GL_EXT_texture_compression_s3tc"); | ||||
| 	GLAD_GL_INTEL_fragment_shader_ordering = has_ext("GL_INTEL_fragment_shader_ordering"); | ||||
| 	GLAD_GL_NV_blend_minmax_factor = has_ext("GL_NV_blend_minmax_factor"); | ||||
| 	GLAD_GL_NV_fragment_shader_interlock = has_ext("GL_NV_fragment_shader_interlock"); | ||||
| 	free_exts(); | ||||
| 	return 1; | ||||
| } | ||||
|  | @ -1988,6 +1997,7 @@ static int find_extensionsGLES2(void) { | |||
| 	GLAD_GL_EXT_shader_framebuffer_fetch = has_ext("GL_EXT_shader_framebuffer_fetch"); | ||||
| 	GLAD_GL_EXT_texture_compression_s3tc = has_ext("GL_EXT_texture_compression_s3tc"); | ||||
| 	GLAD_GL_NV_blend_minmax_factor = has_ext("GL_NV_blend_minmax_factor"); | ||||
| 	GLAD_GL_NV_fragment_shader_interlock = has_ext("GL_NV_fragment_shader_interlock"); | ||||
| 	free_exts(); | ||||
| 	return 1; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue