mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-10-31 18:54:14 +01:00 
			
		
		
		
	Merge pull request #11098 from GPUCode/texel-buffers
buffer_cache: Increase number of texture buffers
This commit is contained in:
		
						commit
						0ea138fb5b
					
				| @ -442,6 +442,11 @@ void BufferCache<P>::UnbindComputeStorageBuffers() { | |||||||
| template <class P> | template <class P> | ||||||
| void BufferCache<P>::BindComputeStorageBuffer(size_t ssbo_index, u32 cbuf_index, u32 cbuf_offset, | void BufferCache<P>::BindComputeStorageBuffer(size_t ssbo_index, u32 cbuf_index, u32 cbuf_offset, | ||||||
|                                               bool is_written) { |                                               bool is_written) { | ||||||
|  |     if (ssbo_index >= channel_state->compute_storage_buffers.size()) [[unlikely]] { | ||||||
|  |         LOG_ERROR(HW_GPU, "Storage buffer index {} exceeds maximum storage buffer count", | ||||||
|  |                   ssbo_index); | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|     channel_state->enabled_compute_storage_buffers |= 1U << ssbo_index; |     channel_state->enabled_compute_storage_buffers |= 1U << ssbo_index; | ||||||
|     channel_state->written_compute_storage_buffers |= (is_written ? 1U : 0U) << ssbo_index; |     channel_state->written_compute_storage_buffers |= (is_written ? 1U : 0U) << ssbo_index; | ||||||
| 
 | 
 | ||||||
| @ -464,6 +469,11 @@ void BufferCache<P>::UnbindComputeTextureBuffers() { | |||||||
| template <class P> | template <class P> | ||||||
| void BufferCache<P>::BindComputeTextureBuffer(size_t tbo_index, GPUVAddr gpu_addr, u32 size, | void BufferCache<P>::BindComputeTextureBuffer(size_t tbo_index, GPUVAddr gpu_addr, u32 size, | ||||||
|                                               PixelFormat format, bool is_written, bool is_image) { |                                               PixelFormat format, bool is_written, bool is_image) { | ||||||
|  |     if (tbo_index >= channel_state->compute_texture_buffers.size()) [[unlikely]] { | ||||||
|  |         LOG_ERROR(HW_GPU, "Texture buffer index {} exceeds maximum texture buffer count", | ||||||
|  |                   tbo_index); | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|     channel_state->enabled_compute_texture_buffers |= 1U << tbo_index; |     channel_state->enabled_compute_texture_buffers |= 1U << tbo_index; | ||||||
|     channel_state->written_compute_texture_buffers |= (is_written ? 1U : 0U) << tbo_index; |     channel_state->written_compute_texture_buffers |= (is_written ? 1U : 0U) << tbo_index; | ||||||
|     if constexpr (SEPARATE_IMAGE_BUFFERS_BINDINGS) { |     if constexpr (SEPARATE_IMAGE_BUFFERS_BINDINGS) { | ||||||
|  | |||||||
| @ -67,7 +67,7 @@ constexpr u32 NUM_TRANSFORM_FEEDBACK_BUFFERS = 4; | |||||||
| constexpr u32 NUM_GRAPHICS_UNIFORM_BUFFERS = 18; | constexpr u32 NUM_GRAPHICS_UNIFORM_BUFFERS = 18; | ||||||
| constexpr u32 NUM_COMPUTE_UNIFORM_BUFFERS = 8; | constexpr u32 NUM_COMPUTE_UNIFORM_BUFFERS = 8; | ||||||
| constexpr u32 NUM_STORAGE_BUFFERS = 16; | constexpr u32 NUM_STORAGE_BUFFERS = 16; | ||||||
| constexpr u32 NUM_TEXTURE_BUFFERS = 16; | constexpr u32 NUM_TEXTURE_BUFFERS = 32; | ||||||
| constexpr u32 NUM_STAGES = 5; | constexpr u32 NUM_STAGES = 5; | ||||||
| 
 | 
 | ||||||
| using UniformBufferSizes = std::array<std::array<u32, NUM_GRAPHICS_UNIFORM_BUFFERS>, NUM_STAGES>; | using UniformBufferSizes = std::array<std::array<u32, NUM_GRAPHICS_UNIFORM_BUFFERS>, NUM_STAGES>; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user