mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 13:41:03 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| diff --git a/thirdparty/minimp3/minimp3.h b/thirdparty/minimp3/minimp3.h
 | |
| index 3220ae1a85..2a9975cc86 100644
 | |
| --- a/thirdparty/minimp3/minimp3.h
 | |
| +++ b/thirdparty/minimp3/minimp3.h
 | |
| @@ -1566,7 +1566,18 @@ static void mp3d_synth(float *xl, mp3d_sample_t *dstl, int nch, float *lins)
 | |
|  
 | |
|  #else /* MINIMP3_FLOAT_OUTPUT */
 | |
|  
 | |
| +// -- GODOT start --
 | |
| +#if defined(_MSC_VER) && (defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_ARM))
 | |
| +            static f4 g_scale;
 | |
| +            g_scale = vsetq_lane_f32(1.0f/32768.0f, g_scale, 0);
 | |
| +            g_scale = vsetq_lane_f32(1.0f/32768.0f, g_scale, 1);
 | |
| +            g_scale = vsetq_lane_f32(1.0f/32768.0f, g_scale, 2);
 | |
| +            g_scale = vsetq_lane_f32(1.0f/32768.0f, g_scale, 3);
 | |
| +#else
 | |
|              static const f4 g_scale = { 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f };
 | |
| +#endif
 | |
| +// -- GODOT end --
 | |
| +
 | |
|              a = VMUL(a, g_scale);
 | |
|              b = VMUL(b, g_scale);
 | |
|  #if HAVE_SSE
 | |
| @@ -1813,7 +1824,19 @@ void mp3dec_f32_to_s16(const float *in, int16_t *out, int num_samples)
 | |
|      int aligned_count = num_samples & ~7;
 | |
|      for(; i < aligned_count; i += 8)
 | |
|      {
 | |
| +
 | |
| +// -- GODOT start --
 | |
| +#if defined(_MSC_VER) && (defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_ARM))
 | |
| +            static f4 g_scale;
 | |
| +            g_scale = vsetq_lane_f32(32768.0f, g_scale, 0);
 | |
| +            g_scale = vsetq_lane_f32(32768.0f, g_scale, 1);
 | |
| +            g_scale = vsetq_lane_f32(32768.0f, g_scale, 2);
 | |
| +            g_scale = vsetq_lane_f32(32768.0f, g_scale, 3);
 | |
| +#else
 | |
|          static const f4 g_scale = { 32768.0f, 32768.0f, 32768.0f, 32768.0f };
 | |
| +#endif
 | |
| +// -- GODOT end --
 | |
| +
 | |
|          f4 a = VMUL(VLD(&in[i  ]), g_scale);
 | |
|          f4 b = VMUL(VLD(&in[i+4]), g_scale);
 | |
|  #if HAVE_SSE
 | 
