Skip to content

Commit 3f6cbb4

Browse files
committed
[primitives,opencl] simplify
* simplify code, split BGRX write from RGB calculation * never touch alpha values, delete duplicate functions RGBA, RGBX, ...)
1 parent 4a7de13 commit 3f6cbb4

File tree

2 files changed

+121
-387
lines changed

2 files changed

+121
-387
lines changed

libfreerdp/primitives/opencl/prim_YUV_opencl.c

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,7 @@ static BOOL cl_kernel_process(primitives_cl_kernel* ctx, BYTE* pDst)
184184
WINPR_ASSERT(ctx);
185185
WINPR_ASSERT(pDst);
186186

187-
size_t indexes[2] = { 0 };
188-
indexes[0] = ctx->roi.width;
189-
indexes[1] = ctx->roi.height;
187+
const size_t indexes[2] = { ctx->roi.width, ctx->roi.height };
190188

191189
cl_int ret = clEnqueueNDRangeKernel(ctx->cl->commandQueue, ctx->kernel, 2, NULL, indexes, NULL,
192190
0, NULL, NULL);
@@ -401,27 +399,19 @@ static pstatus_t opencl_YUV420ToRGB_8u_P3AC4R(const BYTE* WINPR_RESTRICT pSrc[3]
401399

402400
switch (DstFormat)
403401
{
402+
case PIXEL_FORMAT_XBGR32:
404403
case PIXEL_FORMAT_ABGR32:
405404
kernel_name = "yuv420_to_abgr_1b";
406405
break;
407-
case PIXEL_FORMAT_XBGR32:
408-
kernel_name = "yuv420_to_xbgr_1b";
409-
break;
410406
case PIXEL_FORMAT_RGBX32:
411-
kernel_name = "yuv420_to_rgba_1b";
412-
break;
413407
case PIXEL_FORMAT_RGBA32:
414-
kernel_name = "yuv420_to_rgbx_1b";
408+
kernel_name = "yuv420_to_rgba_1b";
415409
break;
410+
case PIXEL_FORMAT_BGRX32:
416411
case PIXEL_FORMAT_BGRA32:
417412
kernel_name = "yuv420_to_bgra_1b";
418413
break;
419-
case PIXEL_FORMAT_BGRX32:
420-
kernel_name = "yuv420_to_bgrx_1b";
421-
break;
422414
case PIXEL_FORMAT_XRGB32:
423-
kernel_name = "yuv420_to_xrgb_1b";
424-
break;
425415
case PIXEL_FORMAT_ARGB32:
426416
kernel_name = "yuv420_to_argb_1b";
427417
break;
@@ -446,27 +436,19 @@ static pstatus_t opencl_YUV444ToRGB_8u_P3AC4R(const BYTE* WINPR_RESTRICT pSrc[3]
446436

447437
switch (DstFormat)
448438
{
439+
case PIXEL_FORMAT_XBGR32:
449440
case PIXEL_FORMAT_ABGR32:
450441
kernel_name = "yuv444_to_abgr_1b";
451442
break;
452-
case PIXEL_FORMAT_XBGR32:
453-
kernel_name = "yuv444_to_xbgr_1b";
454-
break;
455443
case PIXEL_FORMAT_RGBX32:
456-
kernel_name = "yuv444_to_rgba_1b";
457-
break;
458444
case PIXEL_FORMAT_RGBA32:
459-
kernel_name = "yuv444_to_rgbx_1b";
445+
kernel_name = "yuv444_to_rgba_1b";
460446
break;
447+
case PIXEL_FORMAT_BGRX32:
461448
case PIXEL_FORMAT_BGRA32:
462449
kernel_name = "yuv444_to_bgra_1b";
463450
break;
464-
case PIXEL_FORMAT_BGRX32:
465-
kernel_name = "yuv444_to_bgrx_1b";
466-
break;
467451
case PIXEL_FORMAT_XRGB32:
468-
kernel_name = "yuv444_to_xrgb_1b";
469-
break;
470452
case PIXEL_FORMAT_ARGB32:
471453
kernel_name = "yuv444_to_argb_1b";
472454
break;
@@ -492,6 +474,7 @@ BOOL primitives_init_opencl(primitives_t* prims)
492474
if (!primitives_init_opencl_context(&openclContext))
493475
return FALSE;
494476

477+
495478
prims->YUV420ToRGB_8u_P3AC4R = opencl_YUV420ToRGB_8u_P3AC4R;
496479
prims->YUV444ToRGB_8u_P3AC4R = opencl_YUV444ToRGB_8u_P3AC4R;
497480
prims->flags |= PRIM_FLAGS_HAVE_EXTGPU;

0 commit comments

Comments
 (0)