mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-30 15:39:02 -05:00 
			
		
		
		
	Merge pull request #1356 from degasus/hotfix
gl_rasterizer: Fix StartAddress handling with indexed draw calls.
This commit is contained in:
		| @@ -484,8 +484,13 @@ void RasterizerOpenGL::DrawArrays() { | ||||
|     GLintptr index_buffer_offset = 0; | ||||
|     if (is_indexed) { | ||||
|         MICROPROFILE_SCOPE(OpenGL_Index); | ||||
|         index_buffer_offset = | ||||
|             buffer_cache.UploadMemory(regs.index_array.StartAddress(), index_buffer_size); | ||||
|  | ||||
|         // Adjust the index buffer offset so it points to the first desired index. | ||||
|         auto index_start = regs.index_array.StartAddress(); | ||||
|         index_start += static_cast<size_t>(regs.index_array.first) * | ||||
|                        static_cast<size_t>(regs.index_array.FormatSizeInBytes()); | ||||
|  | ||||
|         index_buffer_offset = buffer_cache.UploadMemory(index_start, index_buffer_size); | ||||
|     } | ||||
|  | ||||
|     SetupShaders(); | ||||
| @@ -499,10 +504,6 @@ void RasterizerOpenGL::DrawArrays() { | ||||
|     if (is_indexed) { | ||||
|         const GLint base_vertex{static_cast<GLint>(regs.vb_element_base)}; | ||||
|  | ||||
|         // Adjust the index buffer offset so it points to the first desired index. | ||||
|         index_buffer_offset += static_cast<GLintptr>(regs.index_array.first) * | ||||
|                                static_cast<GLintptr>(regs.index_array.FormatSizeInBytes()); | ||||
|  | ||||
|         if (gpu.state.current_instance > 0) { | ||||
|             glDrawElementsInstancedBaseVertexBaseInstance( | ||||
|                 primitive_mode, regs.index_array.count, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bunnei
					bunnei