CPC G06T 15/005 (2013.01) [G06F 8/41 (2013.01); G06T 1/20 (2013.01); G06T 1/60 (2013.01); G06T 15/80 (2013.01); G09G 5/363 (2013.01)] | 20 Claims |
1. A method of rendering a scene in a graphics system comprising a Graphics Processing Unit (GPU), the method comprising:
identifying a first draw call within a current render;
analysing at least a last shader in a series of shaders used by the first draw call to identify any buffers sampled by the last shader that are to be written by a previous render that has still to be sent for execution on the GPU and to determine whether the last shader samples from the identified buffers using screen space coordinates that correspond to a current fragment location; and
in response to determining that the last shader used by the first draw call does sample from the identified buffers using screen space coordinates that correspond to the current fragment location, adding the first draw call to both a merged control stream comprising draw calls from the previous render and a control stream for a current render;
for a subsequent draw call in the current render, analysing at least a last shader in a series of shaders used by the subsequent draw call to identify any buffers sampled by the last shader that are to be written by a previous render that has still to be sent for execution on the GPU and to determine whether the last shader samples from the identified buffers using screen space coordinates that correspond to the current fragment location; and
in response to determining that the subsequent draw call does not sample from the identified buffers using screen space coordinates that correspond to the current fragment location, discarding the merged control stream.
|