diff --git a/ps3/rgl/src/ps3/include/rgl-inline.h b/ps3/rgl/src/ps3/include/rgl-inline.h index 8d27db888a..b65c8d2134 100644 --- a/ps3/rgl/src/ps3/include/rgl-inline.h +++ b/ps3/rgl/src/ps3/include/rgl-inline.h @@ -284,11 +284,6 @@ static inline GLuint rglPlatformGetBitsPerPixel (GLenum internalFormat) (thisContext->current)[1] = ((surface->height - (((surface->height) & 0x1000) >> 12)) | ((origin) << 12) | ((pixelCenter) << 16)); \ (thisContext->current) += 2; -#define rglGcmSetUpdateFragmentProgramParameter(thisContext, offset, location) \ - (thisContext->current)[0] = (((1) << (18)) | ((0x000008e4))); \ - (thisContext->current)[1] = ((location+1) | (offset)); \ - (thisContext->current) += 2; - static inline void rglGcmSetVertexProgramParameterBlock(struct CellGcmContextData *thisContext, uint32_t baseConst, uint32_t constCount, const float * __restrict value) { diff --git a/ps3/rgl/src/ps3/rgl_ps3.cpp b/ps3/rgl/src/ps3/rgl_ps3.cpp index ac4e7168f2..a6dc6b6bef 100644 --- a/ps3/rgl/src/ps3/rgl_ps3.cpp +++ b/ps3/rgl/src/ps3/rgl_ps3.cpp @@ -3126,16 +3126,9 @@ GLAPI void RGL_EXPORT psglSwap (void) } rglGcmDriver *driver = (rglGcmDriver*)_CurrentDevice->rasterDriver; - float * __restrict v = (float*)driver->sharedVPConstants; - - thisContext->current[0] = (((33) << (18)) | ((0x00001efc))); - thisContext->current[1] = 0; - - __builtin_memcpy(&thisContext->current[2], v, sizeof(float)*16); - __builtin_memcpy(&thisContext->current[18], &v[16], sizeof(float)*16); - thisContext->current += 34; - v += 32; + const char * __restrict v = driver->sharedVPConstants; + 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 11eb2681a3..7db5882996 100644 --- a/ps3/rgl/src/ps3/rgl_ps3_raster.cpp +++ b/ps3/rgl/src/ps3/rgl_ps3_raster.cpp @@ -183,13 +183,7 @@ template<int SIZE> static void setVectorTypeSharedvpIndex (void *data, const voi memcpy(driver->sharedVPConstants + resource * 4 * sizeof( float ), dst, 4 * sizeof(float)); - thisContext->current[0] = (((5) << (18)) | ((0x00001efc))); - thisContext->current[1] = resource; - thisContext->current += 2; - - __builtin_memcpy(thisContext->current, dst, sizeof(float)*4); - thisContext->current += 4; - dst += 4; + rglGcmSetVertexProgramParameterBlock(thisContext, resource, 1, dst ); } template<int SIZE> static void setVectorTypeSharedvpIndexArray (void *data, const void* __restrict v, const int index ) @@ -209,13 +203,7 @@ template<int SIZE> static void setVectorTypeSharedvpIndexArray (void *data, cons memcpy(driver->sharedVPConstants + resource * 4 * sizeof( float ), dst, 4 * sizeof(float)); - thisContext->current[0] = (((5) << (18)) | ((0x00001efc))); - thisContext->current[1] = resource; - thisContext->current += 2; - - __builtin_memcpy(thisContext->current, dst, sizeof(float)*4); - thisContext->current += 4; - dst += 4; + rglGcmSetVertexProgramParameterBlock(thisContext, resource, 1, dst ); } @@ -1773,12 +1761,7 @@ GLAPI void APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count) case CG_FIXED2: case CG_FIXED3: case CG_FIXED4: - thisContext->current[0] = (((5) << (18)) | ((0x00001efc))); - thisContext->current[1] = (parameterResource->resource); - thisContext->current += 2; - __builtin_memcpy(thisContext->current, value, sizeof(float)*4); - thisContext->current += 4; - value += 4; + rglGcmSetVertexProgramParameterBlock(thisContext, parameterResource->resource, 1, value ); break; case CG_FLOAT4x4: case CG_HALF4x4: @@ -1804,17 +1787,7 @@ GLAPI void APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count) v2[13] = value[7]; v2[14] = value[11]; v2[15] = value[15]; - const float * __restrict v3 = v2; - thisContext->current[0] = (((17) << (18)) | ((0x00001efc))); - thisContext->current[1] = parameterResource->resource; - thisContext->current += 2; - - for (i=0; i < 4; ++i) - { - __builtin_memcpy(thisContext->current, v3, sizeof(float)*4); - thisContext->current += 4; - v3 += 4; - } + rglGcmSetVertexProgramParameterBlock(thisContext, parameterResource->resource, 4, v2 ); } break; case CG_FLOAT3x3: @@ -1828,18 +1801,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; - const float * __restrict v3 = v2; - - thisContext->current[0] = (((13) << (18)) | ((0x00001efc))); - thisContext->current[1] = parameterResource->resource; - thisContext->current += 2; - - for (i=0; i < 3; ++i) - { - __builtin_memcpy(thisContext->current, v3, sizeof(float)*4); - thisContext->current += 4; - v3 += 4; - } + rglGcmSetVertexProgramParameterBlock(thisContext, parameterResource->resource, 3, v2 ); } break; } @@ -2131,8 +2093,8 @@ beginning: rglGcmSetInvalidateVertexCache(thisContext); } - uint32_t offset = gmmIdToOffset( driver->fpLoadProgramId ) + driver->fpLoadProgramOffset; - cellGcmSetUpdateFragmentProgramParameterLocationUnsafeInline(thisContext, offset, CELL_GCM_LOCATION_LOCAL); + GCM_FUNC( cellGcmSetUpdateFragmentProgramParameter, + gmmIdToOffset( driver->fpLoadProgramId ) + driver->fpLoadProgramOffset ); uint8_t gcmMode = 0;