Revert "(RGL PS3) Implement our own version of cellGcmSetVertexProgramParameterBlock"

This reverts commit 80a56bedaeb83b668dc3b341e8645bb700b5207b.
This commit is contained in:
twinaphex 2013-04-15 19:49:09 +02:00
parent 2b10d2bf0c
commit e91f8f1c82
3 changed files with 9 additions and 48 deletions

View File

@ -284,42 +284,6 @@ static inline GLuint rglPlatformGetBitsPerPixel (GLenum internalFormat)
(thisContext->current)[1] = ((surface->height - (((surface->height) & 0x1000) >> 12)) | ((origin) << 12) | ((pixelCenter) << 16)); \
(thisContext->current) += 2;
static inline void rglGcmSetVertexProgramParameterBlock(struct CellGcmContextData *thisContext,
uint32_t baseConst, uint32_t constCount, const float * __restrict value)
{
uint32_t blockCount = (constCount*4) >> 5;
uint32_t blockRemain = (constCount*4) & 0x1f;
uint32_t i;
for (i=0; i < blockCount; i++)
{
uint32_t loadAt = baseConst+i*8;
thisContext->current[0] = (((33) << (18)) | ((0x00001efc)));
thisContext->current[1] = (loadAt);
__builtin_memcpy(&thisContext->current[2], value, sizeof(float)*16);
__builtin_memcpy(&thisContext->current[18], &value[16], sizeof(float)*16);
thisContext->current += 34;
value += 32;
}
if(blockRemain)
{
thisContext->current[0] = (((blockRemain+1) << (18)) | ((0x00001efc)));
thisContext->current[1] = (baseConst + blockCount*8);
thisContext->current += 2;
blockRemain >>= 2;
for (i=0; i < blockRemain; ++i)
{
__builtin_memcpy(thisContext->current, value, sizeof(float)*4);
thisContext->current += 4;
value += 4;
}
}
}
static inline void rglGcmSetFragmentProgramLoad(struct CellGcmContextData *thisContext, const CellCgbFragmentProgramConfiguration *conf, const uint32_t location)
{
uint32_t rawData = ((conf->offset)&0x1fffffff);

View File

@ -3127,8 +3127,8 @@ GLAPI void RGL_EXPORT psglSwap (void)
rglGcmDriver *driver = (rglGcmDriver*)_CurrentDevice->rasterDriver;
const char * __restrict v = driver->sharedVPConstants;
GCM_FUNC( cellGcmSetVertexProgramParameterBlock, 0, 8, ( float* )v ); // GCM_PORT_UNTESTED [KHOFF]
rglGcmSetVertexProgramParameterBlock(thisContext, 0, 8, ( float* )v );
rglGcmSetDitherEnable(thisContext, RGLGCM_TRUE );
RGLcontext *context = (RGLcontext*)_CurrentContext;

View File

@ -168,7 +168,6 @@ template<int SIZE> static void setVectorTypeSharedfpIndexArray (void *data, cons
}
template<int SIZE> static void setVectorTypeSharedvpIndex (void *data, const void* __restrict v, const int /*index*/ )
{
CellGcmContextData *thisContext = (CellGcmContextData*)gCellGcmCurrentContext;
CgRuntimeParameter *ptr = (CgRuntimeParameter*)data;
const float * __restrict f = ( const float * __restrict )v;
const CgParameterResource *parameterResource = rglGetParameterResource( ptr->program, ptr->parameterEntry );
@ -183,12 +182,11 @@ template<int SIZE> static void setVectorTypeSharedvpIndex (void *data, const voi
memcpy(driver->sharedVPConstants + resource * 4 * sizeof( float ),
dst, 4 * sizeof(float));
rglGcmSetVertexProgramParameterBlock(thisContext, resource, 1, dst );
GCM_FUNC( cellGcmSetVertexProgramParameterBlock, resource, 1, dst );
}
template<int SIZE> static void setVectorTypeSharedvpIndexArray (void *data, const void* __restrict v, const int index )
{
CellGcmContextData *thisContext = (CellGcmContextData*)gCellGcmCurrentContext;
CgRuntimeParameter *ptr = (CgRuntimeParameter*)data;
const float * __restrict f = ( const float * __restrict )v;
const CgParameterResource *parameterResource = rglGetParameterResource( ptr->program, ptr->parameterEntry );
@ -203,7 +201,7 @@ template<int SIZE> static void setVectorTypeSharedvpIndexArray (void *data, cons
memcpy(driver->sharedVPConstants + resource * 4 * sizeof( float ),
dst, 4 * sizeof(float));
rglGcmSetVertexProgramParameterBlock(thisContext, resource, 1, dst );
GCM_FUNC( cellGcmSetVertexProgramParameterBlock, resource, 1, dst );
}
@ -277,7 +275,6 @@ template <int ROWS, int COLS, int ORDER> static void setMatrixvpIndex (void *dat
template <int ROWS, int COLS, int ORDER, bool isVpIndexArray> static void setMatrixSharedvpIndex (void *data, const void* __restrict v, const int index )
{
CgRuntimeParameter *ptr = (CgRuntimeParameter*)data;
CellGcmContextData *thisContext = (CellGcmContextData*)gCellGcmCurrentContext;
float * __restrict f = ( float* )v;
float * __restrict dst = ( float* )ptr->pushBufferPointer;
@ -295,7 +292,7 @@ template <int ROWS, int COLS, int ORDER, bool isVpIndexArray> static void setMat
for ( long col = COLS; col < 4; ++col ) tmp[row*4 + col] = dst[row*4+col];
}
rglGcmSetVertexProgramParameterBlock(thisContext, resource, ROWS, (const float*)tmp);
GCM_FUNC( cellGcmSetVertexProgramParameterBlock, resource, ROWS, (const float*)tmp);
}
template <int ROWS, int COLS, int ORDER> static void setMatrixSharedfpIndex (void *data, const void* __restrict v, const int /*index*/ )
@ -820,7 +817,7 @@ void rglCreatePushBuffer(void *data)
memset( rglGcmCurrent, 0, 4*( 4*registerCount + 3 ) );
CellGcmContextData gcmContext;
gcmContext.current = (uint32_t*)rglGcmCurrent;
rglGcmSetVertexProgramParameterBlock(&gcmContext, parameterResource->resource, registerCount, ( float* )rglGcmCurrent );
cellGcmSetVertexProgramParameterBlockUnsafeInline(&gcmContext, parameterResource->resource, registerCount, ( float* )rglGcmCurrent );
rglGcmCurrent = (typeof(rglGcmCurrent))gcmContext.current;
rtParameter->pushBufferPointer = rglGcmCurrent - 4 * registerCount;
@ -837,7 +834,7 @@ void rglCreatePushBuffer(void *data)
memset( rglGcmCurrent, 0, 4*( 4*registerStride + 3 ) );
CellGcmContextData gcmContext;
gcmContext.current = (uint32_t*)rglGcmCurrent;
rglGcmSetVertexProgramParameterBlock(&gcmContext, program->resources[resourceIndex], registerStride, ( float* )rglGcmCurrent );
cellGcmSetVertexProgramParameterBlockUnsafeInline(&gcmContext, program->resources[resourceIndex], registerStride, ( float* )rglGcmCurrent );
rglGcmCurrent = (typeof(rglGcmCurrent))gcmContext.current;
*( programPushBuffer++ ) = ( unsigned int* )( rglGcmCurrent - 4 * registerStride );
}
@ -1761,7 +1758,7 @@ GLAPI void APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count)
case CG_FIXED2:
case CG_FIXED3:
case CG_FIXED4:
rglGcmSetVertexProgramParameterBlock(thisContext, parameterResource->resource, 1, value );
GCM_FUNC( cellGcmSetVertexProgramParameterBlock, parameterResource->resource, 1, value ); // GCM_PORT_TESTED [Cedric]
break;
case CG_FLOAT4x4:
case CG_HALF4x4:
@ -1787,7 +1784,7 @@ GLAPI void APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count)
v2[13] = value[7];
v2[14] = value[11];
v2[15] = value[15];
rglGcmSetVertexProgramParameterBlock(thisContext, parameterResource->resource, 4, v2 );
GCM_FUNC( cellGcmSetVertexProgramParameterBlock, parameterResource->resource, 4, v2 ); // GCM_PORT_TESTED [Cedric]
}
break;
case CG_FLOAT3x3:
@ -1801,7 +1798,7 @@ GLAPI void APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count)
v2[0] = value[0];v2[1] = value[3];v2[2] = value[6];v2[3] = 0;
v2[4] = value[1];v2[5] = value[4];v2[6] = value[7];v2[7] = 0;
v2[8] = value[2];v2[9] = value[5];v2[10] = value[8];v2[11] = 0;
rglGcmSetVertexProgramParameterBlock(thisContext, parameterResource->resource, 3, v2 );
GCM_FUNC( cellGcmSetVertexProgramParameterBlock, parameterResource->resource, 3, v2 );
}
break;
}