Example #1
0
void r200TclFallback( struct gl_context *ctx, GLuint bit, GLboolean mode )
{
	r200ContextPtr rmesa = R200_CONTEXT(ctx);
	GLuint oldfallback = rmesa->radeon.TclFallback;

	if (mode) {
		if (oldfallback == 0) {
			/* We have to flush before transition */
			if ( rmesa->radeon.dma.flush )
				rmesa->radeon.dma.flush( &rmesa->radeon.glCtx );

			if (R200_DEBUG & RADEON_FALLBACKS)
				fprintf(stderr, "R200 begin tcl fallback %s\n",
						getFallbackString( bit ));
			rmesa->radeon.TclFallback |= bit;
			transition_to_swtnl( ctx );
		} else
			rmesa->radeon.TclFallback |= bit;
	} else {
		if (oldfallback == bit) {
			/* We have to flush before transition */
			if ( rmesa->radeon.dma.flush )
				rmesa->radeon.dma.flush( &rmesa->radeon.glCtx );

			if (R200_DEBUG & RADEON_FALLBACKS)
				fprintf(stderr, "R200 end tcl fallback %s\n",
						getFallbackString( bit ));
			rmesa->radeon.TclFallback &= ~bit;
			transition_to_hwtnl( ctx );
		} else
			rmesa->radeon.TclFallback &= ~bit;
	}
}
Example #2
0
void mgaFallback( GLcontext *ctx, GLuint bit, GLboolean mode )
{
   TNLcontext *tnl = TNL_CONTEXT(ctx);
   mgaContextPtr mmesa = MGA_CONTEXT(ctx);
   GLuint oldfallback = mmesa->Fallback;

   if (mode) {
      mmesa->Fallback |= bit;
      if (oldfallback == 0) {
	 FLUSH_BATCH(mmesa);
	 _swsetup_Wakeup( ctx );
	 mmesa->RenderIndex = ~0;
         if (MGA_DEBUG & DEBUG_VERBOSE_FALLBACK) {
            fprintf(stderr, "MGA begin rasterization fallback: 0x%x %s\n",
                    bit, getFallbackString(bit));
         }
      }
   }
   else {
      mmesa->Fallback &= ~bit;
      if (oldfallback == bit) {
	 _swrast_flush( ctx );
	 tnl->Driver.Render.Start = mgaCheckTexSizes;
	 tnl->Driver.Render.PrimitiveNotify = mgaRenderPrimitive;
	 tnl->Driver.Render.Finish = mgaRenderFinish;
	 tnl->Driver.Render.BuildVertices = mgaBuildVertices;
	 mmesa->NewGLState |= (_MGA_NEW_RENDERSTATE |
			       _MGA_NEW_RASTERSETUP);
         if (MGA_DEBUG & DEBUG_VERBOSE_FALLBACK) {
            fprintf(stderr, "MGA end rasterization fallback: 0x%x %s\n",
                    bit, getFallbackString(bit));
         }
      }
   }
}
Example #3
0
File: i830_tris.c Project: aosm/X11
void i830Fallback( i830ContextPtr imesa, GLuint bit, GLboolean mode )
{
   GLcontext *ctx = imesa->glCtx;
   TNLcontext *tnl = TNL_CONTEXT(ctx);
   GLuint oldfallback = imesa->Fallback;

   if (mode) {
      imesa->Fallback |= bit;
      if (oldfallback == 0) {
	 I830_FIREVERTICES(imesa);
	 if (I830_DEBUG & DEBUG_FALLBACKS) 
	    fprintf(stderr, "ENTER FALLBACK %s\n", getFallbackString( bit ));
	 _swsetup_Wakeup( ctx );
	 imesa->RenderIndex = ~0;
      }
   }
   else {
      imesa->Fallback &= ~bit;
      if (oldfallback == bit) {
	 _swrast_flush( ctx );
	 if (I830_DEBUG & DEBUG_FALLBACKS) 
	    fprintf(stderr, "LEAVE FALLBACK %s\n", getFallbackString( bit ));
	 tnl->Driver.Render.Start = i830RenderStart;
	 tnl->Driver.Render.PrimitiveNotify = i830RenderPrimitive;
	 tnl->Driver.Render.Finish = i830RenderFinish;
	 tnl->Driver.Render.BuildVertices = i830BuildVertices;
	 imesa->NewGLState |= (_I830_NEW_RENDERSTATE|_I830_NEW_VERTEX);
      }
   }
}
Example #4
0
void radeonFallback( struct gl_context *ctx, GLuint bit, GLboolean mode )
{
   r100ContextPtr rmesa = R100_CONTEXT(ctx);
   TNLcontext *tnl = TNL_CONTEXT(ctx);
   GLuint oldfallback = rmesa->radeon.Fallback;

   if (mode) {
      rmesa->radeon.Fallback |= bit;
      if (oldfallback == 0) {
	 radeon_firevertices(&rmesa->radeon);
	 TCL_FALLBACK( ctx, RADEON_TCL_FALLBACK_RASTER, GL_TRUE );
	 _swsetup_Wakeup( ctx );
	 rmesa->radeon.swtcl.RenderIndex = ~0;
         if (RADEON_DEBUG & RADEON_FALLBACKS) {
            fprintf(stderr, "Radeon begin rasterization fallback: 0x%x %s\n",
                    bit, getFallbackString(bit));
         }
      }
   }
   else {
      rmesa->radeon.Fallback &= ~bit;
      if (oldfallback == bit) {
	 _swrast_flush( ctx );
	 tnl->Driver.Render.Start = radeonRenderStart;
	 tnl->Driver.Render.PrimitiveNotify = radeonRenderPrimitive;
	 tnl->Driver.Render.Finish = radeonRenderFinish;

	 tnl->Driver.Render.BuildVertices = _tnl_build_vertices;
	 tnl->Driver.Render.CopyPV = _tnl_copy_pv;
	 tnl->Driver.Render.Interp = _tnl_interp;

	 tnl->Driver.Render.ResetLineStipple = radeonResetLineStipple;
	 TCL_FALLBACK( ctx, RADEON_TCL_FALLBACK_RASTER, GL_FALSE );
	 if (rmesa->radeon.TclFallback) {
	    /* These are already done if rmesa->radeon.TclFallback goes to
	     * zero above. But not if it doesn't (RADEON_NO_TCL for
	     * example?)
	     */
	    _tnl_invalidate_vertex_state( ctx, ~0 );
	    _tnl_invalidate_vertices( ctx, ~0 );
	    rmesa->radeon.tnl_index_bitset = 0;
	    radeonChooseVertexState( ctx );
	    radeonChooseRenderState( ctx );
	 }
         if (RADEON_DEBUG & RADEON_FALLBACKS) {
            fprintf(stderr, "Radeon end rasterization fallback: 0x%x %s\n",
                    bit, getFallbackString(bit));
         }
      }
   }
}
Example #5
0
 bool Fallback::getFallbackBool(const std::string& fall) const
 {
     std::string fallback=getFallbackString(fall);
     if(fallback.empty())
         return false;
     else
         return boost::lexical_cast<bool>(fallback);
 }
Example #6
0
 int Fallback::getFallbackInt(const std::string& fall) const
 {
     std::string fallback=getFallbackString(fall);
     if(fallback.empty())
         return 0;
     else
         return boost::lexical_cast<int>(fallback);
 }
Example #7
0
 bool Map::getFallbackBool(const std::string& fall) const
 {
     std::string fallback=getFallbackString(fall);
     if (fallback.empty())
         return false;
     else
         return stob(fallback);
 }
Example #8
0
 int Map::getFallbackInt(const std::string& fall) const
 {
     std::string fallback=getFallbackString(fall);
     if (fallback.empty())
         return 0;
     else
         return std::stoi(fallback);
 }
Example #9
0
 float Map::getFallbackFloat(const std::string& fall) const
 {
     std::string fallback=getFallbackString(fall);
     if (fallback.empty())
         return 0;
     else
         return boost::lexical_cast<float>(fallback);
 }
Example #10
0
void intelFallback( intelContextPtr intel, GLuint bit, GLboolean mode )
{
   GLcontext *ctx = &intel->ctx;
   TNLcontext *tnl = TNL_CONTEXT(ctx);
   GLuint oldfallback = intel->Fallback;

   if (mode) {
      intel->Fallback |= bit;
      if (oldfallback == 0) {
         intelFlush(ctx);
         if (INTEL_DEBUG & DEBUG_FALLBACKS) 
            fprintf(stderr, "ENTER FALLBACK 0x%x: %s\n",
                    bit, getFallbackString(bit));
         _swsetup_Wakeup( ctx );
         intel->RenderIndex = ~0;
      }
   }
   else {
      intel->Fallback &= ~bit;
      if (oldfallback == bit) {
         _swrast_flush( ctx );
         if (INTEL_DEBUG & DEBUG_FALLBACKS) 
            fprintf(stderr, "LEAVE FALLBACK 0x%x: %s\n",
                    bit, getFallbackString(bit));
         tnl->Driver.Render.Start = intelRenderStart;
         tnl->Driver.Render.PrimitiveNotify = intelRenderPrimitive;
         tnl->Driver.Render.Finish = intelRenderFinish;
         tnl->Driver.Render.BuildVertices = _tnl_build_vertices;
         tnl->Driver.Render.CopyPV = _tnl_copy_pv;
         tnl->Driver.Render.Interp = _tnl_interp;

         _tnl_invalidate_vertex_state( ctx, ~0 );
         _tnl_invalidate_vertices( ctx, ~0 );
         _tnl_install_attrs( ctx, 
                             intel->vertex_attrs, 
                             intel->vertex_attr_count,
                             intel->ViewportMatrix.m, 0 ); 

         intel->NewGLState |= _INTEL_NEW_RENDERSTATE;
      }
   }
}
Example #11
0
File: ffb_tris.c Project: aosm/X11
void ffbFallback( GLcontext *ctx, GLuint bit, GLboolean mode )
{
	ffbContextPtr fmesa = FFB_CONTEXT(ctx);
 	TNLcontext *tnl = TNL_CONTEXT(ctx);
	GLuint oldfallback = fmesa->bad_fragment_attrs;

	if (mode) {
		fmesa->bad_fragment_attrs |= bit;
		if (oldfallback == 0) {
/*  			FFB_FIREVERTICES(fmesa); */
  		        _swsetup_Wakeup( ctx );
			if (fmesa->debugFallbacks)
				fprintf(stderr, "FFB begin software fallback: 0x%x %s\n",
					bit, getFallbackString(bit));
		}
	} else {
		fmesa->bad_fragment_attrs &= ~bit;
		if (oldfallback == bit) {
			_swrast_flush( ctx );

			tnl->Driver.Render.Start = ffbRenderStart;
			tnl->Driver.Render.PrimitiveNotify = ffbRenderPrimitive;
			tnl->Driver.Render.Finish = ffbRenderFinish;
			fmesa->new_gl_state = ~0;

			/* Just re-choose everything:
			 */
			ffbChooseVertexState(ctx);
			ffbChooseRenderState(ctx);
			ffbChooseTriangleState(ctx);
			ffbChooseLineState(ctx);
			ffbChoosePointState(ctx);

			if (fmesa->debugFallbacks)
				fprintf(stderr, "FFB end software fallback: 0x%x %s\n",
					bit, getFallbackString(bit));
		}
	}
}
Example #12
0
void radeonTclFallback( struct gl_context *ctx, GLuint bit, GLboolean mode )
{
    r100ContextPtr rmesa = R100_CONTEXT(ctx);
    GLuint oldfallback = rmesa->radeon.TclFallback;

    if (mode) {
        rmesa->radeon.TclFallback |= bit;
        if (oldfallback == 0) {
            if (RADEON_DEBUG & RADEON_FALLBACKS)
                fprintf(stderr, "Radeon begin tcl fallback %s\n",
                        getFallbackString( bit ));
            transition_to_swtnl( ctx );
        }
    }
    else {
        rmesa->radeon.TclFallback &= ~bit;
        if (oldfallback == bit) {
            if (RADEON_DEBUG & RADEON_FALLBACKS)
                fprintf(stderr, "Radeon end tcl fallback %s\n",
                        getFallbackString( bit ));
            transition_to_hwtnl( ctx );
        }
    }
}
void r200TclFallback( GLcontext *ctx, GLuint bit, GLboolean mode )
{
   r200ContextPtr rmesa = R200_CONTEXT(ctx);
   GLuint oldfallback = rmesa->TclFallback;

   if (mode) {
      rmesa->TclFallback |= bit;
      if (oldfallback == 0) {
	 if (R200_DEBUG & DEBUG_FALLBACKS) 
	    fprintf(stderr, "R200 begin tcl fallback %s\n",
		    getFallbackString( bit ));
	 transition_to_swtnl( ctx );
      }
   }
   else {
      rmesa->TclFallback &= ~bit;
      if (oldfallback == bit) {
	 if (R200_DEBUG & DEBUG_FALLBACKS) 
	    fprintf(stderr, "R200 end tcl fallback %s\n",
		    getFallbackString( bit ));
	 transition_to_hwtnl( ctx );
      }
   }
}
Example #14
0
    Ogre::ColourValue Fallback::getFallbackColour(const std::string& fall) const
    {
        std::string sum=getFallbackString(fall);
        if(sum.empty())
            return Ogre::ColourValue(0,0,0);
        else
        {
            std::string ret[3];
            unsigned int j=0;
            for(unsigned int i=0;i<sum.length();++i){
                if(sum[i]==',') j++;
                else if (sum[i] != ' ') ret[j]+=sum[i];
            }

            return Ogre::ColourValue(boost::lexical_cast<int>(ret[0])/255.f,boost::lexical_cast<int>(ret[1])/255.f,boost::lexical_cast<int>(ret[2])/255.f);
        }
    }
Example #15
0
    osg::Vec4f Map::getFallbackColour(const std::string& fall) const
    {
        std::string sum=getFallbackString(fall);
        if (sum.empty())
            return osg::Vec4f(0.5f,0.5f,0.5f,1.f);
        else
        {
            std::string ret[3];
            unsigned int j=0;
            for(unsigned int i=0;i<sum.length();++i){
                if(sum[i]==',') j++;
                else if (sum[i] != ' ') ret[j]+=sum[i];
            }

            return osg::Vec4f(std::stoi(ret[0])/255.f,std::stoi(ret[1])/255.f,std::stoi(ret[2])/255.f, 1.f);
        }
    }