mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-04 00:49:02 -06:00 
			
		
		
		
	HACK: Bind stages before and after bindings
Works around a bug where program parameters are only applied to the current stage, and this one wasn't bound at the moment. Affects all SSBO usages on GLASM.
This commit is contained in:
		@@ -240,6 +240,17 @@ void GraphicsProgram::Configure(bool is_indexed) {
 | 
				
			|||||||
    buffer_cache.UpdateGraphicsBuffers(is_indexed);
 | 
					    buffer_cache.UpdateGraphicsBuffers(is_indexed);
 | 
				
			||||||
    buffer_cache.BindHostGeometryBuffers(is_indexed);
 | 
					    buffer_cache.BindHostGeometryBuffers(is_indexed);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // FIXME: Unhack this
 | 
				
			||||||
 | 
					    if (assembly_programs[0].handle != 0) {
 | 
				
			||||||
 | 
					        // TODO: State track this
 | 
				
			||||||
 | 
					        glEnable(GL_VERTEX_PROGRAM_NV);
 | 
				
			||||||
 | 
					        glEnable(GL_FRAGMENT_PROGRAM_NV);
 | 
				
			||||||
 | 
					        glBindProgramARB(GL_VERTEX_PROGRAM_NV, assembly_programs[0].handle);
 | 
				
			||||||
 | 
					        glBindProgramARB(GL_FRAGMENT_PROGRAM_NV, assembly_programs[4].handle);
 | 
				
			||||||
 | 
					        program_manager.BindProgram(0);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        program_manager.BindProgram(program.handle);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    const ImageId* views_it{image_view_ids.data()};
 | 
					    const ImageId* views_it{image_view_ids.data()};
 | 
				
			||||||
    GLsizei texture_binding = 0;
 | 
					    GLsizei texture_binding = 0;
 | 
				
			||||||
    GLsizei image_binding = 0;
 | 
					    GLsizei image_binding = 0;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user