From 5552d5d1a99ccb096adcd0bf893cc12aa73af8b2 Mon Sep 17 00:00:00 2001 From: Leon Perianu Date: Mon, 15 Dec 2025 17:01:02 +0200 Subject: [PATCH] pvr: fix logic for when to reset fill blit Fix loop condition in pvr_isp_ctrl_stream to reset fill_blit when processing fill blits with sources. Fix for deqp: dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_17_1.*.d24_unorm_s8_uint.* dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_49_13.*.d24_unorm_s8_uint.* dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_5_1.*.d24_unorm_s8_uint.* dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_8_32.*.d24_unorm_s8_uint.* dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_8_32.*.d24_unorm_s8_uint.* Signed-off-by: Leon Perianu Reviewed-by: Frank Binns Part-of: --- src/imagination/ci/bxs-4-64-fails.txt | 40 ------------------- .../vulkan/pvr_arch_job_transfer.c | 2 +- 2 files changed, 1 insertion(+), 41 deletions(-) diff --git a/src/imagination/ci/bxs-4-64-fails.txt b/src/imagination/ci/bxs-4-64-fails.txt index f6cb20e2d98..c4a3cc72952 100644 --- a/src/imagination/ci/bxs-4-64-fails.txt +++ b/src/imagination/ci/bxs-4-64-fails.txt @@ -255,10 +255,6 @@ dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.random.seed9_multiview,F dEQP-VK.renderpasses.dynamic_rendering.primary_cmd_buff.suballocation.attachment.4.568,Fail dEQP-VK.renderpasses.renderpass1.dedicated_allocation.attachment_allocation.input_output.71,Fail dEQP-VK.renderpasses.renderpass1.suballocation.attachment_allocation.input_output.71,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_2.d24_unorm_s8_uint.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_2.d24_unorm_s8_uint.depth_zero_stencil_none_testing_depth,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_2.d24_unorm_s8_uint_separate_layouts.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_2.d24_unorm_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_2.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_2.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_2.d32_sfloat_s8_uint.depth_zero_stencil_none_testing_depth,Fail @@ -269,10 +265,6 @@ dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_2.d dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil_samplemask,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_4.d24_unorm_s8_uint.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_4.d24_unorm_s8_uint.depth_zero_stencil_none_testing_depth,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_4.d24_unorm_s8_uint_separate_layouts.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_4.d24_unorm_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_4.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_4.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_17_1.samples_4.d32_sfloat_s8_uint.depth_zero_stencil_none_testing_depth,Fail @@ -287,14 +279,10 @@ dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2. dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d24_unorm_s8_uint.compatibility_depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d24_unorm_s8_uint.compatibility_depth_zero_stencil_zero_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d24_unorm_s8_uint.compatibility_depth_zero_stencil_zero_testing_stencil,Crash -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d24_unorm_s8_uint.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d24_unorm_s8_uint.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d24_unorm_s8_uint_separate_layouts.compatibility_depth_none_stencil_zero_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d24_unorm_s8_uint_separate_layouts.compatibility_depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d24_unorm_s8_uint_separate_layouts.compatibility_depth_zero_stencil_zero_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d24_unorm_s8_uint_separate_layouts.compatibility_depth_zero_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d24_unorm_s8_uint_separate_layouts.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d24_unorm_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d32_sfloat_s8_uint.compatibility_depth_none_stencil_zero_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d32_sfloat_s8_uint.compatibility_depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d32_sfloat_s8_uint.compatibility_depth_zero_stencil_zero_testing_depth,Fail @@ -313,10 +301,6 @@ dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2. dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil_samplemask,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_4.d24_unorm_s8_uint.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_4.d24_unorm_s8_uint.depth_zero_stencil_none_testing_depth,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_4.d24_unorm_s8_uint_separate_layouts.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_4.d24_unorm_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_4.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_4.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_4.d32_sfloat_s8_uint.depth_zero_stencil_none_testing_depth,Fail @@ -327,10 +311,6 @@ dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_4. dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_4.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_4.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_4.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil_samplemask,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_2.d24_unorm_s8_uint.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_2.d24_unorm_s8_uint.depth_zero_stencil_none_testing_depth,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_2.d24_unorm_s8_uint_separate_layouts.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_2.d24_unorm_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_2.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_2.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_2.d32_sfloat_s8_uint.depth_zero_stencil_none_testing_depth,Fail @@ -341,10 +321,6 @@ dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_2. dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil_samplemask,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_4.d24_unorm_s8_uint.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_4.d24_unorm_s8_uint.depth_zero_stencil_none_testing_depth,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_4.d24_unorm_s8_uint_separate_layouts.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_4.d24_unorm_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_4.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_4.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_4.d32_sfloat_s8_uint.depth_zero_stencil_none_testing_depth,Fail @@ -355,10 +331,6 @@ dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_4. dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_4.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_4.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_4.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil_samplemask,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_2.d24_unorm_s8_uint.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_2.d24_unorm_s8_uint.depth_zero_stencil_none_testing_depth,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_2.d24_unorm_s8_uint_separate_layouts.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_2.d24_unorm_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_2.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_2.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_2.d32_sfloat_s8_uint.depth_zero_stencil_none_testing_depth,Fail @@ -369,10 +341,6 @@ dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_2.d3 dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil_samplemask,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_4.d24_unorm_s8_uint.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_4.d24_unorm_s8_uint.depth_zero_stencil_none_testing_depth,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_4.d24_unorm_s8_uint_separate_layouts.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_4.d24_unorm_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_4.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_4.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_4.d32_sfloat_s8_uint.depth_zero_stencil_none_testing_depth,Fail @@ -383,10 +351,6 @@ dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_4.d3 dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_4.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_4.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_5_1.samples_4.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil_samplemask,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_2.d24_unorm_s8_uint.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_2.d24_unorm_s8_uint.depth_zero_stencil_none_testing_depth,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_2.d24_unorm_s8_uint_separate_layouts.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_2.d24_unorm_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_2.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_2.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_2.d32_sfloat_s8_uint.depth_zero_stencil_none_testing_depth,Fail @@ -397,10 +361,6 @@ dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_2.d dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_2.d32_sfloat_s8_uint_separate_layouts.depth_zero_stencil_none_testing_stencil_samplemask,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_4.d24_unorm_s8_uint.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_4.d24_unorm_s8_uint.depth_zero_stencil_none_testing_depth,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_4.d24_unorm_s8_uint_separate_layouts.depth_none_stencil_zero_testing_stencil,Fail -dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_4.d24_unorm_s8_uint_separate_layouts.depth_zero_stencil_none_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_4.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_depth,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_4.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_stencil,Fail dEQP-VK.renderpasses.renderpass2.depth_stencil_resolve.image_2d_8_32.samples_4.d32_sfloat_s8_uint.depth_zero_stencil_none_testing_depth,Fail diff --git a/src/imagination/vulkan/pvr_arch_job_transfer.c b/src/imagination/vulkan/pvr_arch_job_transfer.c index d974b02b5cf..df05efe7e2e 100644 --- a/src/imagination/vulkan/pvr_arch_job_transfer.c +++ b/src/imagination/vulkan/pvr_arch_job_transfer.c @@ -4526,7 +4526,7 @@ static VkResult pvr_isp_ctrl_stream(const struct pvr_device_info *dev_info, /* Fill blit count for custom mapping equals source blit count. While * normal blits use only one fill blit. */ - if (state->custom_mapping.pass_count == 0 && source > num_sources) { + if (state->custom_mapping.pass_count == 0 || source >= num_sources) { fill_blit = false; source = 0; }