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

Commit b80e3f38 authored by Carter Cooper's avatar Carter Cooper Committed by Gerrit - the friendly Code Review server
Browse files

msm: kgsl: Add IFH feature by removing IB commands



Removing the IBs from being sent to the ringbuffer limits the
actual amount of work that the GPU executes. This allows for
a more realistic way to show where the CPU bottlenecks are. By
removing just the IBs and not modifiying anything else, the GPU
still executes some basic commands.  More importantly, it will
still execute the interrupt path which will give more realistic
representations of where the CPU actually spends time.

CRs-fixed: 628252
Change-Id: Ica195e2c9dc09e2fde730fe15e8bbbdf3f71672f
Signed-off-by: default avatarCarter Cooper <ccooper@codeaurora.org>
parent ec4b001e
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -670,6 +670,10 @@ int adreno_dispatcher_queue_cmd(struct adreno_device *adreno_dev,
		(cmdbatch->flags & KGSL_CONTEXT_CTX_SWITCH))
		set_bit(CMDBATCH_FLAG_FORCE_PREAMBLE, &cmdbatch->priv);

	/* Skip this cmdbatch commands if IFH_NOP is enabled */
	if (drawctxt->base.flags & KGSL_CONTEXT_IFH_NOP)
		set_bit(CMDBATCH_FLAG_SKIP, &cmdbatch->priv);

	/*
	 * If we are waiting for the end of frame and it hasn't appeared yet,
	 * then mark the command batch as skipped.  It will still progress
+2 −1
Original line number Diff line number Diff line
@@ -345,7 +345,8 @@ adreno_drawctxt_create(struct kgsl_device_private *dev_priv,
		KGSL_CONTEXT_CTX_SWITCH |
		KGSL_CONTEXT_PRIORITY_MASK |
		KGSL_CONTEXT_TYPE_MASK |
		KGSL_CONTEXT_PWR_CONSTRAINT);
		KGSL_CONTEXT_PWR_CONSTRAINT |
		KGSL_CONTEXT_IFH_NOP);

	/* Always enable per-context timestamps */
	drawctxt->base.flags |= KGSL_CONTEXT_PER_CONTEXT_TS;
+2 −0
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@
#define KGSL_CONTEXT_PRIORITY_SHIFT     12
#define KGSL_CONTEXT_PRIORITY_UNDEF     0

#define KGSL_CONTEXT_IFH_NOP            0x00010000

#define KGSL_CONTEXT_TYPE_MASK          0x01F00000
#define KGSL_CONTEXT_TYPE_SHIFT         20