Using textures in graphics processing systems
AssigneeArm Limited
InventorsPeter William Harris, Edvard Fielding
Life of this patent
Estimating the term…
Abstract
When a renderer of a graphics processor is to perform a graphics rendering operation that uses one or more texture layers in accordance with contribution control data that controls the contribution that each texture layer makes to the rendering operation for a group of fragments, the renderer determines contribution control data for each fragment in the group, and based on the determined contribution control data, either: fetches and uses the texture data values for a texture layer for each fragment in the group from memory, or does not fetch texture data values for a texture layer for each fragment in the group from memory and instead uses a dummy value for the texture layer for each fragment in the group for the graphics rendering operation.
Claims21
A method of operating a graphics processor that executes a graphics processing pipeline to perform graphics processing operations, and which graphics processor comprises:
- a rasteriser that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it;
- and
- a renderer that performs graphics rendering operations on graphics fragments generated by the rasteriser;
- the method comprising:
- when the renderer is to perform, for a group of plural fragments that it is rendering as a group of fragments together, a graphics rendering operation that uses one or more texture layers in accordance with contribution control data that controls the contribution that each texture layer makes to the rendering operation:
- the renderer:
- before fetching the texture data values for each fragment of the group for at least one of the texture layers for the graphics rendering operation, determining texture contribution control data for each fragment in the group of fragments to be processed as a group of fragments together;
- and
- based on the determined contribution control data, either:
- fetching the texture data values for the at least one texture layer for each fragment in the group from memory, and using the fetched texture data values for the at least one texture layer for each fragment in the group for the graphics rendering operation;
- or using a dummy value for the at least one texture layer for each fragment in the group for the graphics rendering operation instead of fetching texture data values for the at least one texture layer for each fragment in the group from memory.
A graphics processor comprising:
- a rasteriser circuit configured to rasterise input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it;
- and
- a renderer circuit configured to perform graphics rendering operations on graphics fragments generated by the rasteriser circuit;
- wherein the renderer circuit is configured to:
- when the renderer circuit is to perform, for a group of plural fragments that it is rendering as a group of fragments together, a graphics rendering operation that uses one or more texture layers in accordance with contribution control data that controls the contribution that each texture layer makes to the rendering operation:
- before fetching the texture data values for each fragment of the group for at least one of the texture layers for the graphics rendering operation, determine texture contribution control data for each fragment in the group of fragments to be processed as a group of fragments together;
- and
- based on the determined contribution control data, either:
- fetch the texture data values for the at least one texture layer for each fragment in the group from memory, and use the fetched texture data values for the at least one texture layer for each fragment in the group for the graphics rendering operation;
- or use a dummy value for the at least one texture layer for each fragment in the group for the graphics rendering operation instead of fetching texture data values for the at least one texture layer for each fragment in the group from memory.
A graphics processing system comprising:
- a graphics processor comprising:
- a rasteriser circuit configured to rasterise input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it;
- and
- a renderer circuit configured to perform graphics rendering operations on graphics fragments generated by the rasteriser circuit, the renderer circuit including a programmable fragment shader circuit configured to execute fragment shader programs to perform fragment shading operations on graphics fragments generated by the rasteriser circuit;
- the graphics processing system further comprising:
- a processing circuit configured to include in a fragment shader program that includes an instruction or instructions that when executed will cause the renderer circuit to perform a graphics rendering operation that uses one or more texture layers in accordance with contribution control data that controls the contribution that each texture layer makes to the rendering operation:
- a graphics program instruction that when executed will cause the renderer circuit to, before performing the graphics rendering operation that uses one or more texture layers in accordance with contribution control data for a group of plural fragments that the renderer circuit is rendering as a group of fragments together:
- determine texture contribution control data for each fragment in the group of fragments to be processed as a group of fragments together before fetching any texture data values for each fragment of the group for at least one of the texture layers for the graphics rendering operation;
- and
- based on the determined contribution control data, either:
- fetch texture data values for the at least one texture layer for each fragment in the group from memory, and use the fetched texture data values for the at least one texture layer for each fragment in the group for the graphics rendering operation;
- or use a dummy value for the at least one texture layer for each fragment in the group for the graphics rendering operation instead of fetching texture data values for the at least one texture layer for each fragment in the group from memory;
- and wherein:
- the programmable fragment shader circuit of the renderer circuit is configured to, when executing a fragment shader program that includes the graphics program instruction for a group of plural fragments that the renderer circuit is rendering as a group of fragments together, in response to the graphics program instruction, cause the renderer circuit to:
- for the group of plural fragments that is being rendered as a group of fragments together:
- determine texture contribution control data for each fragment in the group of fragments being rendered as a group of fragments together, before fetching the texture data values for each fragment of the group for at least one of the texture layers for the graphics rendering operation;
- and
- based on the determined contribution control data, either:
- fetch the texture data values for the at least one texture layer for each fragment in the group from memory, and use the fetched texture data values for the at least one texture layer for each fragment in the group for the graphics rendering operation;
- or use a dummy value for the at least one texture layer for each fragment in the group for the graphics rendering operation instead of fetching texture data values for the at least one texture layer for each fragment in the group from memory.
A non-transitory computer readable storage medium storing computer software code that when executed on a processor performs a method of compiling programs to generate instructions for execution by a programmable fragment shading circuit of a renderer circuit of a graphics processor, the method comprising:
- including in a fragment shader program to be executed by a programmable fragment shading circuit of a renderer circuit of a graphics processor that includes an instruction or instructions that when executed will cause the renderer circuit to perform a graphics rendering operation that uses one or more texture layers in accordance with contribution control data that controls the contribution that each texture layer makes to the rendering operation:
- a graphics program instruction that when executed will cause the renderer circuit to, before performing the graphics rendering operation that uses one or more texture layers in accordance with contribution control data for a group of plural fragments that the renderer is rendering as a group of fragments together:
- determine texture contribution control data for each fragment in the group of fragments to be processed as a group of fragments together before fetching any texture data values for each fragment of the group for at least one of the texture layers for the graphics rendering operation;
- and
- based on the determined contribution control data, either:
- fetch texture data values for the at least one texture layer for each fragment in the group from memory, and use the fetched texture data values for the at least one texture layer for each fragment in the group for the graphics rendering operation;
- or use a dummy value for the at least one texture layer for each fragment in the group for the graphics rendering operation instead of fetching texture data values for the at least one texture layer for each fragment in the group from memory.
Dependencies are inferred from the claim text.