From e91f8f1c828875da5331c3b3b35829eeef6dd974 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 15 Apr 2013 19:49:09 +0200 Subject: [PATCH] Revert "(RGL PS3) Implement our own version of cellGcmSetVertexProgramParameterBlock" This reverts commit 80a56bedaeb83b668dc3b341e8645bb700b5207b. --- ps3/rgl/src/ps3/include/rgl-inline.h | 36 ---------------------------- ps3/rgl/src/ps3/rgl_ps3.cpp | 2 +- ps3/rgl/src/ps3/rgl_ps3_raster.cpp | 19 +++++++-------- 3 files changed, 9 insertions(+), 48 deletions(-) diff --git a/ps3/rgl/src/ps3/include/rgl-inline.h b/ps3/rgl/src/ps3/include/rgl-inline.h index b65c8d2134..cfa65241af 100644 --- a/ps3/rgl/src/ps3/include/rgl-inline.h +++ b/ps3/rgl/src/ps3/include/rgl-inline.h @@ -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); diff --git a/ps3/rgl/src/ps3/rgl_ps3.cpp b/ps3/rgl/src/ps3/rgl_ps3.cpp index a6dc6b6bef..5271ecd0b1 100644 --- a/ps3/rgl/src/ps3/rgl_ps3.cpp +++ b/ps3/rgl/src/ps3/rgl_ps3.cpp @@ -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; diff --git a/ps3/rgl/src/ps3/rgl_ps3_raster.cpp b/ps3/rgl/src/ps3/rgl_ps3_raster.cpp index 7db5882996..d9d4826f20 100644 --- a/ps3/rgl/src/ps3/rgl_ps3_raster.cpp +++ b/ps3/rgl/src/ps3/rgl_ps3_raster.cpp @@ -168,7 +168,6 @@ template static void setVectorTypeSharedfpIndexArray (void *data, cons } template 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 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 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 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 static void setMatrixvpIndex (void *dat template 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 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 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; }