Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f8001669 authored by Jason Sams's avatar Jason Sams
Browse files

Fix 3 bugs in fountain test. Correctly generate the last mip level of a...

Fix 3 bugs in fountain test.  Correctly generate the last mip level of a non-square mip chain.  Default the background to not blended and disable dither/depth.
parent 4b962e57
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@
#pragma version(1)
#pragma stateVertex(default)
#pragma stateFragment(PgmFragBackground)
#pragma stateFragmentStore(parent)
#pragma stateFragmentStore(PFSReplace)


int main(int launchID) {
@@ -36,6 +36,7 @@ int main(int launchID) {

    drawRect(0, 256, 0, 512);
    contextBindProgramFragment(NAMED_PgmFragParts);
    contextBindProgramFragmentStore(NAMED_PFSBlend);

    if (touch) {
        newPart = loadI32(2, 0);
+15 −5
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ public class FountainRS {
    private RenderScript.Allocation mVertAlloc;
    private RenderScript.Script mScript;
    private RenderScript.ProgramFragmentStore mPFS;
    private RenderScript.ProgramFragmentStore mPFS2;
    private RenderScript.ProgramFragment mPF;
    private RenderScript.ProgramFragment mPF2;
    private RenderScript.Allocation mTexture;
@@ -79,20 +80,29 @@ public class FountainRS {
            Bitmap b = bd.getBitmap();
            mTexture = mRS.allocationCreateFromBitmap(b,
                                                      RenderScript.ElementPredefined.RGB_565,
                                                      true);
                                                      false);
            mTexture.uploadToTexture(0);
        }

        mRS.programFragmentStoreBegin(null, null);
        mRS.programFragmentStoreBlendFunc(RenderScript.BlendSrcFunc.SRC_ALPHA, RenderScript.BlendDstFunc.ONE);
        mRS.programFragmentStoreDepthFunc(RenderScript.DepthFunc.ALWAYS);
        mRS.programFragmentStoreDepthMask(false);
        mRS.programFragmentStoreDitherEnable(false);
        mPFS = mRS.programFragmentStoreCreate();
        mPFS.setName("MyBlend");
        mRS.contextBindProgramFragmentStore(mPFS);
        mPFS.setName("PFSBlend");

        mRS.programFragmentStoreBegin(null, null);
        mRS.programFragmentStoreDepthFunc(RenderScript.DepthFunc.ALWAYS);
        mRS.programFragmentStoreDepthMask(false);
        mRS.programFragmentStoreDitherEnable(false);
        mPFS2 = mRS.programFragmentStoreCreate();
        mPFS2.setName("PFSReplace");
        mRS.contextBindProgramFragmentStore(mPFS2);

        mRS.samplerBegin();
        mRS.samplerSet(RenderScript.SamplerParam.FILTER_MAG, RenderScript.SamplerValue.LINEAR);
        mRS.samplerSet(RenderScript.SamplerParam.FILTER_MIN, RenderScript.SamplerValue.LINEAR);
        mRS.samplerSet(RenderScript.SamplerParam.FILTER_MAG, RenderScript.SamplerValue.NEAREST);
        mRS.samplerSet(RenderScript.SamplerParam.FILTER_MIN, RenderScript.SamplerValue.NEAREST);
        mSampler = mRS.samplerCreate();


+3 −3
Original line number Diff line number Diff line
@@ -94,9 +94,9 @@ void Type::compute()
        mLODs[lod].mOffset = offset;
        //LOGE("txyz %i %i %i", tx, ty, tz);
        offset += tx * rsMax(ty, 1u) * rsMax(tz, 1u) * mElement->getSizeBytes();
        tx >>= 1;
        ty >>= 1;
        tz >>= 1;
        tx = (tx + 1) >> 1;
        ty = (ty + 1) >> 1;
        tz = (tz + 1) >> 1;
    }

    //LOGE("size %i", offset);