freetype-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Git][freetype/freetype][gsoc-anurag-2023] improve simd


From: Anurag Thakur (@AdbhutDev)
Subject: [Git][freetype/freetype][gsoc-anurag-2023] improve simd
Date: Sun, 08 Oct 2023 15:26:04 +0000

Anurag Thakur pushed to branch gsoc-anurag-2023 at FreeType / FreeType

Commits:

  • 0e4a081e
    by Anurag Thakur at 2023-10-08T19:34:11+05:30
    improve simd
    

2 changed files:

Changes:

  • src/base/ftobjs.c
    ... ... @@ -3154,7 +3154,7 @@ int conic_to2(FT_GlyphSlot* slot, FT_Vector *control, FT_Vector *from, FT_Vector
    3154 3154
           face->garray = (FT_GlyphSlot*)malloc(
    
    3155 3155
               face->driver->clazz->slot_object_size * face->num_glyphs );
    
    3156 3156
           //error           = FT_Set_Char_Size( face, 0, 160 * 64, 300, 300 );
    
    3157
    -      error           = FT_Set_Pixel_Sizes( face, 0, 100);
    
    3157
    +      error           = FT_Set_Pixel_Sizes( face, 0, 200);
    
    3158 3158
           // int glyph_index = FT_Get_Char_Index( face, 'A' );
    
    3159 3159
           // error           = FT_Load_Glyph( face, glyph_index, FT_LOAD_NO_HINTING );
    
    3160 3160
     
    

  • src/dense/ftdense.c
    ... ... @@ -467,6 +467,7 @@ dense_render_glyph( dense_worker* worker, const FT_Bitmap* target, FT_PreLine pl
    467 467
     
    
    468 468
       __m128i offset = _mm_setzero_si128();
    
    469 469
       __m128i nzero = _mm_castps_si128(_mm_set1_ps(-0.0));
    
    470
    +  
    
    470 471
     
    
    471 472
       for (int i = 0; i < worker->m_h*worker->m_w; i += 4)
    
    472 473
       {
    
    ... ... @@ -482,13 +483,15 @@ dense_render_glyph( dense_worker* worker, const FT_Bitmap* target, FT_PreLine pl
    482 483
         x = _mm_add_epi32( x, offset );
    
    483 484
     
    
    484 485
         __m128i y = _mm_srli_epi32( _mm_abs_epi32( x) , 4 );
    
    485
    -     y = _mm_packs_epi32(y, nzero);
    
    486
    -     y = _mm_packus_epi16(y, nzero);
    
    486
    +     y = _mm_packus_epi16(_mm_packs_epi32(y, nzero), nzero);
    
    487 487
     
    
    488 488
         // int* ptr = (int*)&dest[i];
    
    489 489
         _mm_storeu_si32(&dest[i], y);
    
    490 490
     
    
    491 491
         offset = _mm_shuffle_epi32(x,_MM_SHUFFLE( 3, 3, 3, 3 ) );
    
    492
    +
    
    493
    +
    
    494
    +
    
    492 495
       }
    
    493 496
     
    
    494 497
     #elif FT_NEON
    


  • reply via email to

    [Prev in Thread] Current Thread [Next in Thread]