Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[MANTA] r1199 - trunk/Model/Materials


Chronological Thread 
  • From: abe@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [MANTA] r1199 - trunk/Model/Materials
  • Date: Mon, 2 Oct 2006 17:35:22 -0600 (MDT)

Author: abe
Date: Mon Oct  2 17:35:22 2006
New Revision: 1199

Modified:
   trunk/Model/Materials/Phong.cc
Log:

Modified x86_64 code path to avoid shadow detection bug.

M    Phong.cc


Modified: trunk/Model/Materials/Phong.cc
==============================================================================
--- trunk/Model/Materials/Phong.cc      (original)
+++ trunk/Model/Materials/Phong.cc      Mon Oct  2 17:35:22 2006
@@ -186,9 +186,24 @@
       for(;i<e;i+=4){
 
 #ifdef __x86_64
-       __m128 masklo = _mm_castpd_ps( 
_mm_cmpeq_pd(_mm_load_pd((double*)&shadowData->hitMatl[i]), _mm_setzero_pd()) 
);
-        __m128 maskhi = _mm_castpd_ps( 
_mm_cmpeq_pd(_mm_load_pd((double*)&shadowData->hitMatl[i+2]), 
_mm_setzero_pd()) );
-       __m128 mask = _mm_shuffle_ps(masklo, maskhi, _MM_SHUFFLE(2, 0, 2, 0));
+
+#if 0
+        __m128 masklo1 = _mm_castpd_ps( 
_mm_cmpeq_pd(_mm_load_pd((double*)&shadowData->hitMatl[i]), _mm_setzero_pd()) 
);
+        __m128 maskhi1 = _mm_castpd_ps( 
_mm_cmpeq_pd(_mm_load_pd((double*)&shadowData->hitMatl[i+2]), 
_mm_setzero_pd()) );
+        
+#else
+        __m128 masklo = _mm_castpd_ps( _mm_cmpeq_pd( 
_mm_set_pd((double)(size_t)shadowData->hitMatl[i+0],
+                                                                
(double)(size_t)shadowData->hitMatl[i+1]),
+                                                     _mm_setzero_pd() ));
+        __m128 maskhi = _mm_castpd_ps( _mm_cmpeq_pd ( 
_mm_set_pd((double)(size_t)shadowData->hitMatl[i+2],
+                                                                 
(double)(size_t)shadowData->hitMatl[i+3] ),
+                                                      _mm_setzero_pd() ));
+        
+#endif        
+        __m128 mask = _mm_shuffle_ps(masklo, maskhi, _MM_SHUFFLE(2, 0, 2, 
0));
+
+
+
 #else
         __m128 mask = 
_mm_cmpeq_ps(_mm_load_ps((float*)&shadowData->hitMatl[i]), _mm_setzero_ps());
 #endif




  • [MANTA] r1199 - trunk/Model/Materials, abe, 10/02/2006

Archive powered by MHonArc 2.6.16.

Top of page