US 11,676,323 B2
Controlling rendering operations by shader buffer identification
John W. Howson, St. Albans (GB); Aroun Demeure, London (GB); and Steven Fishwick, Kings Langley (GB)
Assigned to Imagination Technologies Limited, Kings Langley (GB)
Filed by Imagination Technologies Limited, Kings Langley (GB)
Filed on Jan. 28, 2022, as Appl. No. 17/587,008.
Application 17/587,008 is a continuation of application No. 16/888,781, filed on May 31, 2020, granted, now 11,270,493.
Claims priority of application No. 1907814 (GB), filed on May 31, 2019.
Prior Publication US 2022/0157007 A1, May 19, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. G06T 15/00 (2011.01); G06T 15/80 (2011.01); G06T 1/60 (2006.01); G06F 8/41 (2018.01); G06T 1/20 (2006.01); G09G 5/36 (2006.01)
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
OG exemplary drawing
 
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.