make enabling LOWP stages simpler
This method is a little simpler macro-wise, and makes it easier to guard new lowp stages: LOWP(foo) LOWP(bar) #ifndef SK_LEGACY_LOWP_BAZ LOWP(baz) #endif Change-Id: I06392f5cf7a04651e7bf47e79f10f7da8520f5ab Reviewed-on: https://skia-review.googlesource.com/63141 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
This commit is contained in:
parent
3c31281c32
commit
794cdb212e
@ -73,49 +73,6 @@ using StartPipelineFn = void(size_t,size_t,size_t,size_t, void**);
|
||||
#define ASM(name, suffix) _sk_##name##_##suffix
|
||||
#endif
|
||||
|
||||
// Some stages have 8-bit versions from SkJumper_stages_lowp.cpp.
|
||||
#define LOWP_STAGES(M) \
|
||||
M(black_color) M(white_color) M(uniform_color) \
|
||||
M(set_rgb) \
|
||||
M(premul) \
|
||||
M(luminance_to_alpha) \
|
||||
M(load_8888) M(load_8888_dst) M(store_8888) \
|
||||
M(load_bgra) M(load_bgra_dst) M(store_bgra) \
|
||||
M(load_a8) M(load_a8_dst) M(store_a8) \
|
||||
M(load_g8) M(load_g8_dst) \
|
||||
M(load_565) M(load_565_dst) M(store_565) \
|
||||
M(swap_rb) \
|
||||
M(srcover_rgba_8888) \
|
||||
M(lerp_1_float) \
|
||||
M(lerp_u8) \
|
||||
M(lerp_565) \
|
||||
M(scale_1_float) \
|
||||
M(scale_u8) \
|
||||
M(scale_565) \
|
||||
M(move_src_dst) \
|
||||
M(move_dst_src) \
|
||||
M(clear) \
|
||||
M(srcatop) \
|
||||
M(dstatop) \
|
||||
M(srcin) \
|
||||
M(dstin) \
|
||||
M(srcout) \
|
||||
M(dstout) \
|
||||
M(srcover) \
|
||||
M(dstover) \
|
||||
M(modulate) \
|
||||
M(multiply) \
|
||||
M(screen) \
|
||||
M(xor_) \
|
||||
M(plus_) \
|
||||
M(darken) \
|
||||
M(lighten) \
|
||||
M(difference) \
|
||||
M(exclusion) \
|
||||
M(hardlight) \
|
||||
M(overlay) \
|
||||
M(seed_shader) M(matrix_2x3) M(gather_8888)
|
||||
|
||||
extern "C" {
|
||||
|
||||
#if !SK_JUMPER_USE_ASSEMBLY
|
||||
@ -147,18 +104,15 @@ extern "C" {
|
||||
ASM(just_return,sse41_lowp),
|
||||
ASM(just_return, sse2_lowp);
|
||||
|
||||
#define M(st) StageFn ASM(st, skx), \
|
||||
ASM(st, hsw), \
|
||||
ASM(st, avx), \
|
||||
ASM(st,sse41), \
|
||||
ASM(st, sse2);
|
||||
SK_RASTER_PIPELINE_STAGES(M)
|
||||
#undef M
|
||||
|
||||
#define M(st) StageFn ASM(st, hsw_lowp), \
|
||||
#define M(st) StageFn ASM(st, skx), \
|
||||
ASM(st, hsw), \
|
||||
ASM(st, avx), \
|
||||
ASM(st,sse41), \
|
||||
ASM(st, sse2), \
|
||||
ASM(st, hsw_lowp), \
|
||||
ASM(st,sse41_lowp), \
|
||||
ASM(st, sse2_lowp);
|
||||
LOWP_STAGES(M)
|
||||
SK_RASTER_PIPELINE_STAGES(M)
|
||||
#undef M
|
||||
|
||||
#elif defined(__i386__) || defined(_M_IX86)
|
||||
@ -202,7 +156,7 @@ extern "C" {
|
||||
template <SkRasterPipeline::StockStage st>
|
||||
static constexpr StageFn* sse2_lowp() { return nullptr; }
|
||||
|
||||
#define M(st) \
|
||||
#define LOWP(st) \
|
||||
template <> constexpr StageFn* hsw_lowp<SkRasterPipeline::st>() { \
|
||||
return ASM(st,hsw_lowp); \
|
||||
} \
|
||||
@ -212,31 +166,70 @@ extern "C" {
|
||||
template <> constexpr StageFn* sse2_lowp<SkRasterPipeline::st>() { \
|
||||
return ASM(st,sse2_lowp); \
|
||||
}
|
||||
LOWP_STAGES(M)
|
||||
#undef M
|
||||
|
||||
#elif defined(__i386__) || defined(_M_IX86)
|
||||
template <SkRasterPipeline::StockStage st>
|
||||
static constexpr StageFn* sse2_lowp() { return nullptr; }
|
||||
|
||||
#define M(st) \
|
||||
#define LOWP(st) \
|
||||
template <> constexpr StageFn* sse2_lowp<SkRasterPipeline::st>() { \
|
||||
return ASM(st,sse2_lowp); \
|
||||
}
|
||||
LOWP_STAGES(M)
|
||||
#undef M
|
||||
|
||||
#elif defined(JUMPER_NEON_HAS_LOWP)
|
||||
template <SkRasterPipeline::StockStage st>
|
||||
static constexpr StageFn* neon_lowp() { return nullptr; }
|
||||
|
||||
#define M(st) \
|
||||
#define LOWP(st) \
|
||||
template <> constexpr StageFn* neon_lowp<SkRasterPipeline::st>() { \
|
||||
return sk_##st##_lowp; \
|
||||
}
|
||||
LOWP_STAGES(M)
|
||||
#undef M
|
||||
#else
|
||||
#define LOWP(st)
|
||||
|
||||
#endif
|
||||
|
||||
LOWP(black_color) LOWP(white_color) LOWP(uniform_color)
|
||||
LOWP(set_rgb)
|
||||
LOWP(premul)
|
||||
LOWP(luminance_to_alpha)
|
||||
LOWP(load_8888) LOWP(load_8888_dst) LOWP(store_8888)
|
||||
LOWP(load_bgra) LOWP(load_bgra_dst) LOWP(store_bgra)
|
||||
LOWP(load_a8) LOWP(load_a8_dst) LOWP(store_a8)
|
||||
LOWP(load_g8) LOWP(load_g8_dst)
|
||||
LOWP(load_565) LOWP(load_565_dst) LOWP(store_565)
|
||||
LOWP(swap_rb)
|
||||
LOWP(srcover_rgba_8888)
|
||||
LOWP(lerp_1_float)
|
||||
LOWP(lerp_u8)
|
||||
LOWP(lerp_565)
|
||||
LOWP(scale_1_float)
|
||||
LOWP(scale_u8)
|
||||
LOWP(scale_565)
|
||||
LOWP(move_src_dst)
|
||||
LOWP(move_dst_src)
|
||||
LOWP(clear)
|
||||
LOWP(srcatop)
|
||||
LOWP(dstatop)
|
||||
LOWP(srcin)
|
||||
LOWP(dstin)
|
||||
LOWP(srcout)
|
||||
LOWP(dstout)
|
||||
LOWP(srcover)
|
||||
LOWP(dstover)
|
||||
LOWP(modulate)
|
||||
LOWP(multiply)
|
||||
LOWP(screen)
|
||||
LOWP(xor_)
|
||||
LOWP(plus_)
|
||||
LOWP(darken)
|
||||
LOWP(lighten)
|
||||
LOWP(difference)
|
||||
LOWP(exclusion)
|
||||
LOWP(hardlight)
|
||||
LOWP(overlay)
|
||||
LOWP(seed_shader) LOWP(matrix_2x3) LOWP(gather_8888)
|
||||
#undef LOWP
|
||||
#endif
|
||||
|
||||
// Engines comprise everything we need to run SkRasterPipelines.
|
||||
|
Loading…
Reference in New Issue
Block a user