|
|
@@ -791,12 +791,17 @@ TextureCacheRuntime::TextureCacheRuntime(const Device& device_, Scheduler& sched
|
|
|
MemoryAllocator& memory_allocator_,
|
|
|
StagingBufferPool& staging_buffer_pool_,
|
|
|
BlitImageHelper& blit_image_helper_,
|
|
|
- ASTCDecoderPass& astc_decoder_pass_,
|
|
|
- RenderPassCache& render_pass_cache_)
|
|
|
+ RenderPassCache& render_pass_cache_,
|
|
|
+ DescriptorPool& descriptor_pool,
|
|
|
+ UpdateDescriptorQueue& update_descriptor_queue)
|
|
|
: device{device_}, scheduler{scheduler_}, memory_allocator{memory_allocator_},
|
|
|
staging_buffer_pool{staging_buffer_pool_}, blit_image_helper{blit_image_helper_},
|
|
|
- astc_decoder_pass{astc_decoder_pass_}, render_pass_cache{render_pass_cache_},
|
|
|
- resolution{Settings::values.resolution_info} {}
|
|
|
+ render_pass_cache{render_pass_cache_}, resolution{Settings::values.resolution_info} {
|
|
|
+ if (Settings::values.accelerate_astc) {
|
|
|
+ astc_decoder_pass.emplace(device, scheduler, descriptor_pool, staging_buffer_pool,
|
|
|
+ update_descriptor_queue, memory_allocator);
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
void TextureCacheRuntime::Finish() {
|
|
|
scheduler.Finish();
|
|
|
@@ -1845,7 +1850,7 @@ void TextureCacheRuntime::AccelerateImageUpload(
|
|
|
Image& image, const StagingBufferRef& map,
|
|
|
std::span<const VideoCommon::SwizzleParameters> swizzles) {
|
|
|
if (IsPixelFormatASTC(image.info.format)) {
|
|
|
- return astc_decoder_pass.Assemble(image, map, swizzles);
|
|
|
+ return astc_decoder_pass->Assemble(image, map, swizzles);
|
|
|
}
|
|
|
ASSERT(false);
|
|
|
}
|