mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu.git
				synced 2025-05-12 00:45:25 +00:00 
			
		
		
		
	GLRenderer: Write the shader stage configuration UBO data *before* copying it to the GPU.
This should fix the bug with the vs_config UBO being uninitialized during shader execution.
This commit is contained in:
		
							parent
							
								
									0ff2929644
								
							
						
					
					
						commit
						86146ef819
					
				| @ -214,13 +214,14 @@ void RasterizerOpenGL::SetupShaders(u8* buffer_ptr, GLintptr buffer_offset) { | |||||||
|             continue; |             continue; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         GLShader::MaxwellUniformData ubo{}; | ||||||
|  |         ubo.SetFromRegs(gpu.state.shader_stages[stage]); | ||||||
|  |         std::memcpy(buffer_ptr, &ubo, sizeof(ubo)); | ||||||
|  | 
 | ||||||
|         // Upload uniform data as one UBO per stage
 |         // Upload uniform data as one UBO per stage
 | ||||||
|         const GLintptr ubo_offset = buffer_offset; |         const GLintptr ubo_offset = buffer_offset; | ||||||
|         copy_buffer(uniform_buffers[stage].handle, ubo_offset, |         copy_buffer(uniform_buffers[stage].handle, ubo_offset, | ||||||
|                     sizeof(GLShader::MaxwellUniformData)); |                     sizeof(GLShader::MaxwellUniformData)); | ||||||
|         GLShader::MaxwellUniformData* ub_ptr = |  | ||||||
|             reinterpret_cast<GLShader::MaxwellUniformData*>(buffer_ptr); |  | ||||||
|         ub_ptr->SetFromRegs(gpu.state.shader_stages[stage]); |  | ||||||
| 
 | 
 | ||||||
|         buffer_ptr += sizeof(GLShader::MaxwellUniformData); |         buffer_ptr += sizeof(GLShader::MaxwellUniformData); | ||||||
|         buffer_offset += sizeof(GLShader::MaxwellUniformData); |         buffer_offset += sizeof(GLShader::MaxwellUniformData); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Subv
						Subv