@@ -219,46 +219,48 @@ SoftBlitPyGame(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst,
219
219
src -> format -> Rmask == dst -> format -> Rmask &&
220
220
src -> format -> Gmask == dst -> format -> Gmask &&
221
221
src -> format -> Bmask == dst -> format -> Bmask ) {
222
- /* If our source and destination are the same ARGB 32bit
223
- format we can use SSE2/NEON/AVX2 to speed up the blend */
222
+ /* If our source and destination are the same ARGB
223
+ 32bit format we can use SSE2/NEON/AVX2 to speed
224
+ up the blend */
225
+ if (pg_has_avx2 () && (src != dst )) {
226
+ if (info .src_blanket_alpha != 255 ) {
227
+ alphablit_alpha_avx2_argb_surf_alpha (
228
+ & info );
229
+ }
230
+ else if (SDL_ISPIXELFORMAT_ALPHA (
231
+ dst -> format -> format ) &&
232
+ info .dst_blend !=
233
+ SDL_BLENDMODE_NONE ) {
234
+ alphablit_alpha_avx2_argb_no_surf_alpha (
235
+ & info );
236
+ }
237
+ else {
238
+ alphablit_alpha_avx2_argb_no_surf_alpha_opaque_dst (
239
+ & info );
240
+ }
241
+ break ;
242
+ }
224
243
#if PG_ENABLE_SSE_NEON
225
244
if ((pg_HasSSE_NEON ()) && (src != dst )) {
226
245
if (info .src_blanket_alpha != 255 ) {
227
- if (pg_has_avx2 ()) {
228
- alphablit_alpha_avx2_argb_surf_alpha (
229
- & info );
230
- }
231
- else {
232
- alphablit_alpha_sse2_argb_surf_alpha (
233
- & info );
234
- }
246
+ alphablit_alpha_sse2_argb_surf_alpha (
247
+ & info );
248
+ }
249
+ else if (SDL_ISPIXELFORMAT_ALPHA (
250
+ dst -> format -> format ) &&
251
+ info .dst_blend !=
252
+ SDL_BLENDMODE_NONE ) {
253
+ alphablit_alpha_sse2_argb_no_surf_alpha (
254
+ & info );
235
255
}
236
256
else {
237
- if (SDL_ISPIXELFORMAT_ALPHA (
238
- dst -> format -> format ) &&
239
- info .dst_blend != SDL_BLENDMODE_NONE ) {
240
- if (pg_has_avx2 ()) {
241
- alphablit_alpha_avx2_argb_no_surf_alpha (
242
- & info );
243
- }
244
- else {
245
- alphablit_alpha_sse2_argb_no_surf_alpha (
246
- & info );
247
- }
248
- }
249
- else if (pg_has_avx2 ()) {
250
- alphablit_alpha_avx2_argb_no_surf_alpha_opaque_dst (
251
- & info );
252
- }
253
- else {
254
- alphablit_alpha_sse2_argb_no_surf_alpha_opaque_dst (
255
- & info );
256
- }
257
+ alphablit_alpha_sse2_argb_no_surf_alpha_opaque_dst (
258
+ & info );
257
259
}
258
260
break ;
259
261
}
260
- #endif /* PG_ENABLE_SSE_NEON */
261
262
}
263
+ #endif /* PG_ENABLE_SSE_NEON */
262
264
#endif /* SDL_BYTEORDER == SDL_LIL_ENDIAN */
263
265
#endif /* __EMSCRIPTEN__ */
264
266
alphablit_alpha (& info );
0 commit comments