Ver código fonte

Jose's latest patch (GMBT_GEOMETRIC_CORRECTION)

tags/mesa_4_1
Brian Paul 23 anos atrás
pai
commit
cffb351a62
1 arquivos alterados com 17 adições e 1 exclusões
  1. 17
    1
      src/mesa/x86/mmx_blend.S

+ 17
- 1
src/mesa/x86/mmx_blend.S Ver arquivo

@@ -39,7 +39,15 @@
*
* achieving the exact results
*/
#define GMBT_ROUNDOFF 1
#define GMBT_ROUNDOFF 0

/* instead of the roundoff this adds a small correction to satisfy the OpenGL criteria
*
* t/255 ~= (t + (t >> 8) + (t >> 15)) >> 8
*
* note that although is faster than rounding off it doesn't give always the exact results
*/
#define GMBT_GEOMETRIC_CORRECTION 1

/*
* do
@@ -282,6 +290,14 @@ LLBL (GMBT_loop_begin):

PADDW ( MM3, MM2 ) /* t1 + (t1 >> 8) ~= (t1/255) << 8 */
PADDW ( MM5, MM6 ) /* t2 + (t2 >> 8) ~= (t2/255) << 8 */

#if GMBT_GEOMETRIC_CORRECTION
PSRLW ( CONST(7), MM3 ) /* t1 >> 15 */
PSRLW ( CONST(7), MM5 ) /* t2 >> 15 */

PADDW ( MM3, MM2 ) /* t1 + (t1 >> 8) + (t1 >>15) ~= (t1/255) << 8 */
PADDW ( MM5, MM6 ) /* t2 + (t2 >> 8) + (t2 >>15) ~= (t2/255) << 8 */
#endif
#endif

#if GMBT_SIGNED_ARITHMETIC

Carregando…
Cancelar
Salvar