A method of data processing, the method comprising: receiving, at a graphics processing unit comprising a plurality of processing units, a command stream, the command stream including one or more commands to be performed by the GPU and at least one command stream hint, the at least one command stream hint providing a characterization of a workload of the command stream, wherein the at least one command stream hint includes one or more of an indication of an application type, an indication of a context type, an indication of a render mode, an indication of a workload size, or an indication of a range of acceptable quality of service levels; parsing the command stream, by a front-end processor of the GPU, to identify the at least one command stream hint; sending, by the front-end processor of the GPU, the identified at least one command stream hint to a power management unit of the GPU; performing, by the power management unit of the GPU, a power management process based on the at least one command stream hint prior to the GPU executing the command stream; and executing, by the GPU, the command stream; wherein the GPU further comprises a plurality of collapsible power domains, wherein a collapsible power domain is a power domain of the GPU to which operating voltage and/or operating frequency may be adjusted, and/or which may be power collapsed, wherein power collapsing a collapsible power domain comprises shutting off power to the collapsible power domain, each collapsible power domain of the GPU including at least one of the plurality of processing units, and wherein the power management process further comprises: power collapsing one or more of the plurality of collapsible power domains based on the at least one command stream hint indicating that the context type is a compute context type; lowering at least one of an operating voltage or an operating frequency of one or more of the plurality of collapsible power domains based on the at least one command stream hint indicating that the range of quality of service levels is below a threshold; or, power collapsing one or more of the plurality of collapsible power domains based on the at least one command stream hint indicating that the context type is 2D graphics processing and that the workload size is above a threshold. receiving, at a graphics processing unit comprising a plurality of processing units, a command stream, the command stream including one or more commands to be performed by the GPU and at least one command stream hint, the at least one command stream hint providing a characterization of a workload of the command stream, wherein the at least one command stream hint includes one or more of an indication of an application type, an indication of a context type, an indication of a render mode, an indication of a workload size, or an indication of a range of acceptable quality of service levels; parsing the command stream, by a front-end processor of the GPU, to identify the at least one command stream hint; sending, by the front-end processor of the GPU, the identified at least one command stream hint to a power management unit of the GPU; performing, by the power management unit of the GPU, a power management process based on the at least one command stream hint prior to the GPU executing the command stream; and executing, by the GPU, the command stream; power collapsing one or more of the plurality of collapsible power domains based on the at least one command stream hint indicating that the context type is a compute context type; lowering at least one of an operating voltage or an operating frequency of one or more of the plurality of collapsible power domains based on the at least one command stream hint indicating that the range of quality of service levels is below a threshold; or, power collapsing one or more of the plurality of collapsible power domains based on the at least one command stream hint indicating that the context type is 2D graphics processing and that the workload size is above a threshold.