Loading tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBenchRS.java +0 −27 Original line number Original line Diff line number Diff line Loading @@ -81,8 +81,6 @@ public class RsBenchRS { private Sampler mLinearWrap; private Sampler mLinearWrap; private Sampler mMipLinearWrap; private Sampler mMipLinearWrap; private Sampler mNearestClamp; private Sampler mNearestClamp; private Sampler mMipLinearAniso8; private Sampler mMipLinearAniso15; private ProgramStore mProgStoreBlendNoneDepth; private ProgramStore mProgStoreBlendNoneDepth; private ProgramStore mProgStoreBlendNone; private ProgramStore mProgStoreBlendNone; Loading Loading @@ -123,10 +121,6 @@ public class RsBenchRS { Font mFontSans; Font mFontSans; Font mFontSerif; Font mFontSerif; Font mFontSerifBold; Font mFontSerifItalic; Font mFontSerifBoldItalic; Font mFontMono; private Allocation mTextAlloc; private Allocation mTextAlloc; private ScriptC_rsbench mScript; private ScriptC_rsbench mScript; Loading Loading @@ -410,20 +404,11 @@ public class RsBenchRS { mFontSans = Font.create(mRS, mRes, "sans-serif", Font.Style.NORMAL, 8); mFontSans = Font.create(mRS, mRes, "sans-serif", Font.Style.NORMAL, 8); mFontSerif = Font.create(mRS, mRes, "serif", Font.Style.NORMAL, 8); mFontSerif = Font.create(mRS, mRes, "serif", Font.Style.NORMAL, 8); // Create fonts by family and style // Create fonts by family and style mFontSerifBold = Font.create(mRS, mRes, "serif", Font.Style.BOLD, 8); mFontSerifItalic = Font.create(mRS, mRes, "serif", Font.Style.ITALIC, 8); mFontSerifBoldItalic = Font.create(mRS, mRes, "serif", Font.Style.BOLD_ITALIC, 8); mFontMono = Font.create(mRS, mRes, "mono", Font.Style.NORMAL, 8); mTextAlloc = Allocation.createFromString(mRS, "String from allocation", Allocation.USAGE_SCRIPT); mTextAlloc = Allocation.createFromString(mRS, "String from allocation", Allocation.USAGE_SCRIPT); mScript.set_gFontSans(mFontSans); mScript.set_gFontSans(mFontSans); mScript.set_gFontSerif(mFontSerif); mScript.set_gFontSerif(mFontSerif); mScript.set_gFontSerifBold(mFontSerifBold); mScript.set_gFontSerifItalic(mFontSerifItalic); mScript.set_gFontSerifBoldItalic(mFontSerifBoldItalic); mScript.set_gFontMono(mFontMono); mScript.set_gTextAlloc(mTextAlloc); } } private void initMesh() { private void initMesh() { Loading Loading @@ -456,21 +441,9 @@ public class RsBenchRS { mNearestClamp = Sampler.CLAMP_NEAREST(mRS); mNearestClamp = Sampler.CLAMP_NEAREST(mRS); mMipLinearWrap = Sampler.WRAP_LINEAR_MIP_LINEAR(mRS); mMipLinearWrap = Sampler.WRAP_LINEAR_MIP_LINEAR(mRS); bs = new Sampler.Builder(mRS); bs.setMinification(Sampler.Value.LINEAR_MIP_LINEAR); bs.setMagnification(Sampler.Value.LINEAR); bs.setWrapS(Sampler.Value.WRAP); bs.setWrapT(Sampler.Value.WRAP); bs.setAnisotropy(8.0f); mMipLinearAniso8 = bs.create(); bs.setAnisotropy(15.0f); mMipLinearAniso15 = bs.create(); mScript.set_gLinearClamp(mLinearClamp); mScript.set_gLinearClamp(mLinearClamp); mScript.set_gLinearWrap(mLinearWrap); mScript.set_gLinearWrap(mLinearWrap); mScript.set_gMipLinearWrap(mMipLinearWrap); mScript.set_gMipLinearWrap(mMipLinearWrap); mScript.set_gMipLinearAniso8(mMipLinearAniso8); mScript.set_gMipLinearAniso15(mMipLinearAniso15); mScript.set_gNearestClamp(mNearestClamp); mScript.set_gNearestClamp(mNearestClamp); } } Loading tests/RenderScriptTests/PerfTest/src/com/android/perftest/rsbench.rs +4 −176 Original line number Original line Diff line number Diff line Loading @@ -52,19 +52,12 @@ rs_mesh gTorusMesh; rs_font gFontSans; rs_font gFontSans; rs_font gFontSerif; rs_font gFontSerif; rs_font gFontSerifBold; rs_font gFontSerifItalic; rs_font gFontSerifBoldItalic; rs_font gFontMono; rs_allocation gTextAlloc; int gDisplayMode; int gDisplayMode; rs_sampler gLinearClamp; rs_sampler gLinearClamp; rs_sampler gLinearWrap; rs_sampler gLinearWrap; rs_sampler gMipLinearWrap; rs_sampler gMipLinearWrap; rs_sampler gMipLinearAniso8; rs_sampler gMipLinearAniso15; rs_sampler gNearestClamp; rs_sampler gNearestClamp; rs_program_raster gCullBack; rs_program_raster gCullBack; Loading Loading @@ -117,8 +110,8 @@ static void displayFontSamples(int fillNum) { rs_font fonts[5]; rs_font fonts[5]; fonts[0] = gFontSans; fonts[0] = gFontSans; fonts[1] = gFontSerif; fonts[1] = gFontSerif; fonts[2] = gFontSerifBold; fonts[2] = gFontSans; fonts[3] = gFontSerifBoldItalic; fonts[3] = gFontSerif; fonts[4] = gFontSans; fonts[4] = gFontSans; uint width = gRenderSurfaceW; uint width = gRenderSurfaceW; Loading Loading @@ -183,52 +176,6 @@ static void displaySingletexFill(bool blend, int quadCount) { } } } } static void displayBlendingSamples() { int i; bindProgramVertexOrtho(); rs_matrix4x4 matrix; rsMatrixLoadIdentity(&matrix); rsgProgramVertexLoadModelMatrix(&matrix); rsgBindProgramFragment(gProgFragmentColor); rsgBindProgramStore(gProgStoreBlendNone); for (i = 0; i < 3; i ++) { float iPlusOne = (float)(i + 1); rsgProgramFragmentConstantColor(gProgFragmentColor, 0.1f*iPlusOne, 0.2f*iPlusOne, 0.3f*iPlusOne, 1); float yPos = 150 * (float)i; rsgDrawRect(0, yPos, 200, yPos + 200, 0); } rsgBindProgramStore(gProgStoreBlendAlpha); for (i = 0; i < 3; i ++) { float iPlusOne = (float)(i + 1); rsgProgramFragmentConstantColor(gProgFragmentColor, 0.2f*iPlusOne, 0.3f*iPlusOne, 0.1f*iPlusOne, 0.5); float yPos = 150 * (float)i; rsgDrawRect(150, yPos, 350, yPos + 200, 0); } rsgBindProgramStore(gProgStoreBlendAdd); for (i = 0; i < 3; i ++) { float iPlusOne = (float)(i + 1); rsgProgramFragmentConstantColor(gProgFragmentColor, 0.3f*iPlusOne, 0.1f*iPlusOne, 0.2f*iPlusOne, 0.5); float yPos = 150 * (float)i; rsgDrawRect(300, yPos, 500, yPos + 200, 0); } rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); rsgBindFont(gFontMono); rsgDrawText("No Blending", 10, 50); rsgDrawText("Alpha Blending", 160, 150); rsgDrawText("Additive Blending", 320, 250); } static void displayMeshSamples(int meshNum) { static void displayMeshSamples(int meshNum) { bindProgramVertexOrtho(); bindProgramVertexOrtho(); Loading @@ -251,61 +198,6 @@ static void displayMeshSamples(int meshNum) { } } } } static void displayTextureSamplers() { bindProgramVertexOrtho(); rs_matrix4x4 matrix; rsMatrixLoadIdentity(&matrix); rsgProgramVertexLoadModelMatrix(&matrix); // Fragment shader with texture rsgBindProgramStore(gProgStoreBlendNone); rsgBindProgramFragment(gProgFragmentTexture); rsgBindTexture(gProgFragmentTexture, 0, gTexOpaque); // Linear clamp rsgBindSampler(gProgFragmentTexture, 0, gLinearClamp); float startX = 0, startY = 0; float width = 300, height = 300; rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, startX, startY + height, 0, 0, 1.1, startX + width, startY + height, 0, 1.1, 1.1, startX + width, startY, 0, 1.1, 0); // Linear Wrap rsgBindSampler(gProgFragmentTexture, 0, gLinearWrap); startX = 0; startY = 300; width = 300; height = 300; rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, startX, startY + height, 0, 0, 1.1, startX + width, startY + height, 0, 1.1, 1.1, startX + width, startY, 0, 1.1, 0); // Nearest rsgBindSampler(gProgFragmentTexture, 0, gNearestClamp); startX = 300; startY = 0; width = 300; height = 300; rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, startX, startY + height, 0, 0, 1.1, startX + width, startY + height, 0, 1.1, 1.1, startX + width, startY, 0, 1.1, 0); rsgBindSampler(gProgFragmentTexture, 0, gMipLinearWrap); startX = 300; startY = 300; width = 300; height = 300; rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, startX, startY + height, 0, 0, 1.5, startX + width, startY + height, 0, 1.5, 1.5, startX + width, startY, 0, 1.5, 0); rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); rsgBindFont(gFontMono); rsgDrawText("Filtering: linear clamp", 10, 290); rsgDrawText("Filtering: linear wrap", 10, 590); rsgDrawText("Filtering: nearest clamp", 310, 290); rsgDrawText("Filtering: miplinear wrap", 310, 590); } static float gTorusRotation = 0; static float gTorusRotation = 0; static void updateModelMatrix(rs_matrix4x4 *matrix, void *buffer) { static void updateModelMatrix(rs_matrix4x4 *matrix, void *buffer) { if (buffer == 0) { if (buffer == 0) { Loading Loading @@ -354,7 +246,6 @@ static void drawToruses(int numMeshes, rs_matrix4x4 *matrix, void *buffer) { } } } } // Quick hack to get some geometry numbers // Quick hack to get some geometry numbers static void displaySimpleGeoSamples(bool useTexture, int numMeshes) { static void displaySimpleGeoSamples(bool useTexture, int numMeshes) { rsgBindProgramVertex(gProgVertex); rsgBindProgramVertex(gProgVertex); Loading Loading @@ -545,66 +436,6 @@ static void displayMultitextureSample(bool blend, int quadCount) { } } } } static float gAnisoTime = 0.0f; static uint anisoMode = 0; static void displayAnisoSample() { gAnisoTime += gDt; rsgBindProgramVertex(gProgVertex); float aspect = (float)gRenderSurfaceW / (float)gRenderSurfaceH; rs_matrix4x4 proj; rsMatrixLoadPerspective(&proj, 30.0f, aspect, 0.1f, 100.0f); rsgProgramVertexLoadProjectionMatrix(&proj); rs_matrix4x4 matrix; // Fragment shader with texture rsgBindProgramStore(gProgStoreBlendNone); rsgBindProgramFragment(gProgFragmentTexture); rsMatrixLoadTranslate(&matrix, 0.0f, 0.0f, -10.0f); rsMatrixRotate(&matrix, -80, 1.0f, 0.0f, 0.0f); rsgProgramVertexLoadModelMatrix(&matrix); rsgBindProgramRaster(gCullNone); rsgBindTexture(gProgFragmentTexture, 0, gTexChecker); if (gAnisoTime >= 5.0f) { gAnisoTime = 0.0f; anisoMode ++; anisoMode = anisoMode % 3; } if (anisoMode == 0) { rsgBindSampler(gProgFragmentTexture, 0, gMipLinearAniso8); } else if (anisoMode == 1) { rsgBindSampler(gProgFragmentTexture, 0, gMipLinearAniso15); } else { rsgBindSampler(gProgFragmentTexture, 0, gMipLinearWrap); } float startX = -15; float startY = -15; float width = 30; float height = 30; rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, startX, startY + height, 0, 0, 10, startX + width, startY + height, 0, 10, 10, startX + width, startY, 0, 10, 0); rsgBindProgramRaster(gCullBack); rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); rsgBindFont(gFontMono); if (anisoMode == 0) { rsgDrawText("Anisotropic filtering 8", 10, 40); } else if (anisoMode == 1) { rsgDrawText("Anisotropic filtering 15", 10, 40); } else { rsgDrawText("Miplinear filtering", 10, 40); } } static bool checkInit() { static bool checkInit() { static int countdown = 5; static int countdown = 5; Loading @@ -613,20 +444,17 @@ static bool checkInit() { if(countdown > 1) { if(countdown > 1) { displayFontSamples(5); displayFontSamples(5); displaySingletexFill(true, 3); displaySingletexFill(true, 3); displayBlendingSamples(); displayMeshSamples(0); displayMeshSamples(0); displayMeshSamples(1); displayMeshSamples(1); displayMeshSamples(2); displayMeshSamples(2); displayTextureSamplers(); displayMultitextureSample(true, 5); displayMultitextureSample(true, 5); displayAnisoSample(); displayPixelLightSamples(1, false); displayPixelLightSamples(1, false); displayPixelLightSamples(1, true); displayPixelLightSamples(1, true); countdown --; countdown --; rsgClearColor(0.2f, 0.2f, 0.2f, 0.0f); rsgClearColor(0.2f, 0.2f, 0.2f, 0.0f); rsgFontColor(0.9f, 0.9f, 0.95f, 1.0f); rsgFontColor(0.9f, 0.9f, 0.95f, 1.0f); rsgBindFont(gFontSerifBoldItalic); rsgBindFont(gFontSerif); if (countdown == 1) { if (countdown == 1) { rsgDrawText("Rendering", 50, 50); rsgDrawText("Rendering", 50, 50); } else { } else { Loading Loading @@ -831,7 +659,7 @@ int root(void) { uint width = rsgGetWidth(); uint width = rsgGetWidth(); uint height = rsgGetHeight(); uint height = rsgGetHeight(); rsgFontColor(0.9f, 0.9f, 0.95f, 1.0f); rsgFontColor(0.9f, 0.9f, 0.95f, 1.0f); rsgBindFont(gFontSerifBoldItalic); rsgBindFont(gFontSerif); rsgMeasureText(text, &left, &right, &top, &bottom); rsgMeasureText(text, &left, &right, &top, &bottom); rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); rsgDrawText(text, 2 -left, height - 2 + bottom); rsgDrawText(text, 2 -left, height - 2 + bottom); Loading tests/RenderScriptTests/PerfTest/src/com/android/perftest/shader_def.rsh +0 −9 Original line number Original line Diff line number Diff line Loading @@ -30,15 +30,6 @@ typedef struct VertexShaderConstants_s { float light1_CosinePower; float light1_CosinePower; } VertexShaderConstants; } VertexShaderConstants; typedef struct VertexShaderConstants2_s { rs_matrix4x4 model[2]; rs_matrix4x4 proj; float4 light_Posision[2]; float light_Diffuse[2]; float light_Specular[2]; float light_CosinePower[2]; } VertexShaderConstants2; typedef struct VertexShaderConstants3_s { typedef struct VertexShaderConstants3_s { rs_matrix4x4 model; rs_matrix4x4 model; rs_matrix4x4 proj; rs_matrix4x4 proj; Loading Loading
tests/RenderScriptTests/PerfTest/src/com/android/perftest/RsBenchRS.java +0 −27 Original line number Original line Diff line number Diff line Loading @@ -81,8 +81,6 @@ public class RsBenchRS { private Sampler mLinearWrap; private Sampler mLinearWrap; private Sampler mMipLinearWrap; private Sampler mMipLinearWrap; private Sampler mNearestClamp; private Sampler mNearestClamp; private Sampler mMipLinearAniso8; private Sampler mMipLinearAniso15; private ProgramStore mProgStoreBlendNoneDepth; private ProgramStore mProgStoreBlendNoneDepth; private ProgramStore mProgStoreBlendNone; private ProgramStore mProgStoreBlendNone; Loading Loading @@ -123,10 +121,6 @@ public class RsBenchRS { Font mFontSans; Font mFontSans; Font mFontSerif; Font mFontSerif; Font mFontSerifBold; Font mFontSerifItalic; Font mFontSerifBoldItalic; Font mFontMono; private Allocation mTextAlloc; private Allocation mTextAlloc; private ScriptC_rsbench mScript; private ScriptC_rsbench mScript; Loading Loading @@ -410,20 +404,11 @@ public class RsBenchRS { mFontSans = Font.create(mRS, mRes, "sans-serif", Font.Style.NORMAL, 8); mFontSans = Font.create(mRS, mRes, "sans-serif", Font.Style.NORMAL, 8); mFontSerif = Font.create(mRS, mRes, "serif", Font.Style.NORMAL, 8); mFontSerif = Font.create(mRS, mRes, "serif", Font.Style.NORMAL, 8); // Create fonts by family and style // Create fonts by family and style mFontSerifBold = Font.create(mRS, mRes, "serif", Font.Style.BOLD, 8); mFontSerifItalic = Font.create(mRS, mRes, "serif", Font.Style.ITALIC, 8); mFontSerifBoldItalic = Font.create(mRS, mRes, "serif", Font.Style.BOLD_ITALIC, 8); mFontMono = Font.create(mRS, mRes, "mono", Font.Style.NORMAL, 8); mTextAlloc = Allocation.createFromString(mRS, "String from allocation", Allocation.USAGE_SCRIPT); mTextAlloc = Allocation.createFromString(mRS, "String from allocation", Allocation.USAGE_SCRIPT); mScript.set_gFontSans(mFontSans); mScript.set_gFontSans(mFontSans); mScript.set_gFontSerif(mFontSerif); mScript.set_gFontSerif(mFontSerif); mScript.set_gFontSerifBold(mFontSerifBold); mScript.set_gFontSerifItalic(mFontSerifItalic); mScript.set_gFontSerifBoldItalic(mFontSerifBoldItalic); mScript.set_gFontMono(mFontMono); mScript.set_gTextAlloc(mTextAlloc); } } private void initMesh() { private void initMesh() { Loading Loading @@ -456,21 +441,9 @@ public class RsBenchRS { mNearestClamp = Sampler.CLAMP_NEAREST(mRS); mNearestClamp = Sampler.CLAMP_NEAREST(mRS); mMipLinearWrap = Sampler.WRAP_LINEAR_MIP_LINEAR(mRS); mMipLinearWrap = Sampler.WRAP_LINEAR_MIP_LINEAR(mRS); bs = new Sampler.Builder(mRS); bs.setMinification(Sampler.Value.LINEAR_MIP_LINEAR); bs.setMagnification(Sampler.Value.LINEAR); bs.setWrapS(Sampler.Value.WRAP); bs.setWrapT(Sampler.Value.WRAP); bs.setAnisotropy(8.0f); mMipLinearAniso8 = bs.create(); bs.setAnisotropy(15.0f); mMipLinearAniso15 = bs.create(); mScript.set_gLinearClamp(mLinearClamp); mScript.set_gLinearClamp(mLinearClamp); mScript.set_gLinearWrap(mLinearWrap); mScript.set_gLinearWrap(mLinearWrap); mScript.set_gMipLinearWrap(mMipLinearWrap); mScript.set_gMipLinearWrap(mMipLinearWrap); mScript.set_gMipLinearAniso8(mMipLinearAniso8); mScript.set_gMipLinearAniso15(mMipLinearAniso15); mScript.set_gNearestClamp(mNearestClamp); mScript.set_gNearestClamp(mNearestClamp); } } Loading
tests/RenderScriptTests/PerfTest/src/com/android/perftest/rsbench.rs +4 −176 Original line number Original line Diff line number Diff line Loading @@ -52,19 +52,12 @@ rs_mesh gTorusMesh; rs_font gFontSans; rs_font gFontSans; rs_font gFontSerif; rs_font gFontSerif; rs_font gFontSerifBold; rs_font gFontSerifItalic; rs_font gFontSerifBoldItalic; rs_font gFontMono; rs_allocation gTextAlloc; int gDisplayMode; int gDisplayMode; rs_sampler gLinearClamp; rs_sampler gLinearClamp; rs_sampler gLinearWrap; rs_sampler gLinearWrap; rs_sampler gMipLinearWrap; rs_sampler gMipLinearWrap; rs_sampler gMipLinearAniso8; rs_sampler gMipLinearAniso15; rs_sampler gNearestClamp; rs_sampler gNearestClamp; rs_program_raster gCullBack; rs_program_raster gCullBack; Loading Loading @@ -117,8 +110,8 @@ static void displayFontSamples(int fillNum) { rs_font fonts[5]; rs_font fonts[5]; fonts[0] = gFontSans; fonts[0] = gFontSans; fonts[1] = gFontSerif; fonts[1] = gFontSerif; fonts[2] = gFontSerifBold; fonts[2] = gFontSans; fonts[3] = gFontSerifBoldItalic; fonts[3] = gFontSerif; fonts[4] = gFontSans; fonts[4] = gFontSans; uint width = gRenderSurfaceW; uint width = gRenderSurfaceW; Loading Loading @@ -183,52 +176,6 @@ static void displaySingletexFill(bool blend, int quadCount) { } } } } static void displayBlendingSamples() { int i; bindProgramVertexOrtho(); rs_matrix4x4 matrix; rsMatrixLoadIdentity(&matrix); rsgProgramVertexLoadModelMatrix(&matrix); rsgBindProgramFragment(gProgFragmentColor); rsgBindProgramStore(gProgStoreBlendNone); for (i = 0; i < 3; i ++) { float iPlusOne = (float)(i + 1); rsgProgramFragmentConstantColor(gProgFragmentColor, 0.1f*iPlusOne, 0.2f*iPlusOne, 0.3f*iPlusOne, 1); float yPos = 150 * (float)i; rsgDrawRect(0, yPos, 200, yPos + 200, 0); } rsgBindProgramStore(gProgStoreBlendAlpha); for (i = 0; i < 3; i ++) { float iPlusOne = (float)(i + 1); rsgProgramFragmentConstantColor(gProgFragmentColor, 0.2f*iPlusOne, 0.3f*iPlusOne, 0.1f*iPlusOne, 0.5); float yPos = 150 * (float)i; rsgDrawRect(150, yPos, 350, yPos + 200, 0); } rsgBindProgramStore(gProgStoreBlendAdd); for (i = 0; i < 3; i ++) { float iPlusOne = (float)(i + 1); rsgProgramFragmentConstantColor(gProgFragmentColor, 0.3f*iPlusOne, 0.1f*iPlusOne, 0.2f*iPlusOne, 0.5); float yPos = 150 * (float)i; rsgDrawRect(300, yPos, 500, yPos + 200, 0); } rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); rsgBindFont(gFontMono); rsgDrawText("No Blending", 10, 50); rsgDrawText("Alpha Blending", 160, 150); rsgDrawText("Additive Blending", 320, 250); } static void displayMeshSamples(int meshNum) { static void displayMeshSamples(int meshNum) { bindProgramVertexOrtho(); bindProgramVertexOrtho(); Loading @@ -251,61 +198,6 @@ static void displayMeshSamples(int meshNum) { } } } } static void displayTextureSamplers() { bindProgramVertexOrtho(); rs_matrix4x4 matrix; rsMatrixLoadIdentity(&matrix); rsgProgramVertexLoadModelMatrix(&matrix); // Fragment shader with texture rsgBindProgramStore(gProgStoreBlendNone); rsgBindProgramFragment(gProgFragmentTexture); rsgBindTexture(gProgFragmentTexture, 0, gTexOpaque); // Linear clamp rsgBindSampler(gProgFragmentTexture, 0, gLinearClamp); float startX = 0, startY = 0; float width = 300, height = 300; rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, startX, startY + height, 0, 0, 1.1, startX + width, startY + height, 0, 1.1, 1.1, startX + width, startY, 0, 1.1, 0); // Linear Wrap rsgBindSampler(gProgFragmentTexture, 0, gLinearWrap); startX = 0; startY = 300; width = 300; height = 300; rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, startX, startY + height, 0, 0, 1.1, startX + width, startY + height, 0, 1.1, 1.1, startX + width, startY, 0, 1.1, 0); // Nearest rsgBindSampler(gProgFragmentTexture, 0, gNearestClamp); startX = 300; startY = 0; width = 300; height = 300; rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, startX, startY + height, 0, 0, 1.1, startX + width, startY + height, 0, 1.1, 1.1, startX + width, startY, 0, 1.1, 0); rsgBindSampler(gProgFragmentTexture, 0, gMipLinearWrap); startX = 300; startY = 300; width = 300; height = 300; rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, startX, startY + height, 0, 0, 1.5, startX + width, startY + height, 0, 1.5, 1.5, startX + width, startY, 0, 1.5, 0); rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); rsgBindFont(gFontMono); rsgDrawText("Filtering: linear clamp", 10, 290); rsgDrawText("Filtering: linear wrap", 10, 590); rsgDrawText("Filtering: nearest clamp", 310, 290); rsgDrawText("Filtering: miplinear wrap", 310, 590); } static float gTorusRotation = 0; static float gTorusRotation = 0; static void updateModelMatrix(rs_matrix4x4 *matrix, void *buffer) { static void updateModelMatrix(rs_matrix4x4 *matrix, void *buffer) { if (buffer == 0) { if (buffer == 0) { Loading Loading @@ -354,7 +246,6 @@ static void drawToruses(int numMeshes, rs_matrix4x4 *matrix, void *buffer) { } } } } // Quick hack to get some geometry numbers // Quick hack to get some geometry numbers static void displaySimpleGeoSamples(bool useTexture, int numMeshes) { static void displaySimpleGeoSamples(bool useTexture, int numMeshes) { rsgBindProgramVertex(gProgVertex); rsgBindProgramVertex(gProgVertex); Loading Loading @@ -545,66 +436,6 @@ static void displayMultitextureSample(bool blend, int quadCount) { } } } } static float gAnisoTime = 0.0f; static uint anisoMode = 0; static void displayAnisoSample() { gAnisoTime += gDt; rsgBindProgramVertex(gProgVertex); float aspect = (float)gRenderSurfaceW / (float)gRenderSurfaceH; rs_matrix4x4 proj; rsMatrixLoadPerspective(&proj, 30.0f, aspect, 0.1f, 100.0f); rsgProgramVertexLoadProjectionMatrix(&proj); rs_matrix4x4 matrix; // Fragment shader with texture rsgBindProgramStore(gProgStoreBlendNone); rsgBindProgramFragment(gProgFragmentTexture); rsMatrixLoadTranslate(&matrix, 0.0f, 0.0f, -10.0f); rsMatrixRotate(&matrix, -80, 1.0f, 0.0f, 0.0f); rsgProgramVertexLoadModelMatrix(&matrix); rsgBindProgramRaster(gCullNone); rsgBindTexture(gProgFragmentTexture, 0, gTexChecker); if (gAnisoTime >= 5.0f) { gAnisoTime = 0.0f; anisoMode ++; anisoMode = anisoMode % 3; } if (anisoMode == 0) { rsgBindSampler(gProgFragmentTexture, 0, gMipLinearAniso8); } else if (anisoMode == 1) { rsgBindSampler(gProgFragmentTexture, 0, gMipLinearAniso15); } else { rsgBindSampler(gProgFragmentTexture, 0, gMipLinearWrap); } float startX = -15; float startY = -15; float width = 30; float height = 30; rsgDrawQuadTexCoords(startX, startY, 0, 0, 0, startX, startY + height, 0, 0, 10, startX + width, startY + height, 0, 10, 10, startX + width, startY, 0, 10, 0); rsgBindProgramRaster(gCullBack); rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); rsgBindFont(gFontMono); if (anisoMode == 0) { rsgDrawText("Anisotropic filtering 8", 10, 40); } else if (anisoMode == 1) { rsgDrawText("Anisotropic filtering 15", 10, 40); } else { rsgDrawText("Miplinear filtering", 10, 40); } } static bool checkInit() { static bool checkInit() { static int countdown = 5; static int countdown = 5; Loading @@ -613,20 +444,17 @@ static bool checkInit() { if(countdown > 1) { if(countdown > 1) { displayFontSamples(5); displayFontSamples(5); displaySingletexFill(true, 3); displaySingletexFill(true, 3); displayBlendingSamples(); displayMeshSamples(0); displayMeshSamples(0); displayMeshSamples(1); displayMeshSamples(1); displayMeshSamples(2); displayMeshSamples(2); displayTextureSamplers(); displayMultitextureSample(true, 5); displayMultitextureSample(true, 5); displayAnisoSample(); displayPixelLightSamples(1, false); displayPixelLightSamples(1, false); displayPixelLightSamples(1, true); displayPixelLightSamples(1, true); countdown --; countdown --; rsgClearColor(0.2f, 0.2f, 0.2f, 0.0f); rsgClearColor(0.2f, 0.2f, 0.2f, 0.0f); rsgFontColor(0.9f, 0.9f, 0.95f, 1.0f); rsgFontColor(0.9f, 0.9f, 0.95f, 1.0f); rsgBindFont(gFontSerifBoldItalic); rsgBindFont(gFontSerif); if (countdown == 1) { if (countdown == 1) { rsgDrawText("Rendering", 50, 50); rsgDrawText("Rendering", 50, 50); } else { } else { Loading Loading @@ -831,7 +659,7 @@ int root(void) { uint width = rsgGetWidth(); uint width = rsgGetWidth(); uint height = rsgGetHeight(); uint height = rsgGetHeight(); rsgFontColor(0.9f, 0.9f, 0.95f, 1.0f); rsgFontColor(0.9f, 0.9f, 0.95f, 1.0f); rsgBindFont(gFontSerifBoldItalic); rsgBindFont(gFontSerif); rsgMeasureText(text, &left, &right, &top, &bottom); rsgMeasureText(text, &left, &right, &top, &bottom); rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); rsgFontColor(1.0f, 1.0f, 1.0f, 1.0f); rsgDrawText(text, 2 -left, height - 2 + bottom); rsgDrawText(text, 2 -left, height - 2 + bottom); Loading
tests/RenderScriptTests/PerfTest/src/com/android/perftest/shader_def.rsh +0 −9 Original line number Original line Diff line number Diff line Loading @@ -30,15 +30,6 @@ typedef struct VertexShaderConstants_s { float light1_CosinePower; float light1_CosinePower; } VertexShaderConstants; } VertexShaderConstants; typedef struct VertexShaderConstants2_s { rs_matrix4x4 model[2]; rs_matrix4x4 proj; float4 light_Posision[2]; float light_Diffuse[2]; float light_Specular[2]; float light_CosinePower[2]; } VertexShaderConstants2; typedef struct VertexShaderConstants3_s { typedef struct VertexShaderConstants3_s { rs_matrix4x4 model; rs_matrix4x4 model; rs_matrix4x4 proj; rs_matrix4x4 proj; Loading