Unified Shader Engine Filtering System
Each row of a row based shader engine comprises a shader pipe array, a texture filter, and a level one texture cache system. The shader pipe array accepts texture requests for a specified pixel from a resource and performs associated rendering calculations, outputting texel data. The texture mapping unit receives texel data from a level one cache system and through formatting and bilinear filtering interpolations, generates a formatted bilinear result based on a specific pixel's corresponding four texels. Utilizing multiple rows of a row based shader engine within the shader engine allows for the parallel processing of multiple simultaneous resource requests. A method for texture filtering utilizing a row based shader engine is also presented.
1 . A unified shader engine filtering system, comprising:
two or more engine rows, each engine row comprising:
a shader pipe array configured to accept texture instructions and generate output data;
a level one texture cache system configured to store the texture output data; and
a texture mapping unit configured to receive texture output data from the level one texture cache system and generate formatted interpolation data.
2 . A system according to claim 1 , wherein the shader pipe array is configured to accept ALU, load/store, and output instructions
3 . A system according to claim 1 , wherein each engine row further comprises a redundant shader pipe array that processes shader pipe data destined to a defective shader pipe.
4 . A system according to claim 1 , wherein the shader pipe array comprises one or more shader pipe blocks.
5 . A system according to claim 4 , wherein a shader pipe block comprises one or more shader pipes.
6 . A system according to claim 1 , wherein the level one texture cache system is configured to read and write to a level two cache system.
7 . A system according to claim 1 , wherein the texture mapping unit comprises:
a pre-formatter module configured to accept texel data and generate normalized fixed point texel data;
a interpolator module configured to perform an interpolation on the normalized fixed point texel data from the pre-formatter module and generate re-normalized floating point texel data;
an accumulator module configured to accumulate floating point texel data from the interpolator module; and
a format module configured to convert texel data from the accumulator module into a standard floating point representation.
8 . A system according to claim 7 , wherein the interpolator module is configured to perform one or more interpolations in order to achieve at least one of:
a bilinear texture filtering;
a trilinear texture filtering; and
an anisotropic texture filtering.
9 . A method for unified shader complex filtering, comprising:
receiving a set of texture requests from a plurality of resources for a specified set of pixels, vertices, primitives, surfaces, or compute work items;
generating a data set of addresses based on a shader program instruction for the specified set of pixels, vertices, primitives, surfaces, or compute work items;
retrieving stored texel data from a level one cache system; and
calculating a formatted accumulated interpolation based on the retrieved texel data and an originating shader instruction.
10 . A method according to claim 9 , further comprising:
processing shader pipe data destined to one or more defective shader pipes.
11 . A method according to claim 9 , further comprising:
reading and writing to and from a level two cache system from the level one texture cache system.
12 . A method according to claim 9 , wherein the texture mapping unit further comprises:
receiving floating point texel data;
generating normalized fixed point texel data from the floating point texel data;
performing an interpolation on the normalized fixed point texel data;
generating re-normalized floating point texel data;
accumulating re-normalized texel data; and
formatting the accumulated re-normalized texel data into a standard floating point representation.
13 . A method according to claim 12 , wherein interpolation further comprises:
bilinear texture filtering;
trilinear texture filtering; and
an anisotropic texture filtering.
14 . A method according to claim 9 , wherein the method is performed by synthesizing hardware description language instructions.
15 . A system for unified shader engine filtering, comprising:
a processor-based computing system; and
a memory in communication with said processor, said memory for storing a plurality of processing instructions for directing said computing system to:
receive set of texture requests from a plurality of resources in parallel for a plurality of sets of specified pixels, vertices, primitives, surfaces, or compute work items;
generate a data set of output texel data for each specified pixel based on rendering calculations;
retrieve stored texel data from a level one cache system; and
calculate a formatted interpolation for each set of texel data in parallel utilizing a texture mapping unit.
16 . A system according to claim 15 , further comprising instructions for directing said computing system to:
process shader pipe data destined to one or more defective shader pipes.
17 . A system according to claim 15 , further comprising instructions for directing said computing system to:
read and write to a level two cache system from the level one texture cache system.
18 . A system according to claim 15 , further comprising instructions for directing said computing system to:
receive floating point texel data;
generate normalized fixed point texel data from the floating point texel data;
perform an interpolation on the normalized fixed point texel data;
generate re-normalized floating point texel data;
accumulate re-normalized texel data; and
format the accumulated re-normalized texel data into a standard floating point representation.
19 . A system according to claim 15 , further comprising instructions for directing said computing system to:
filter with a bilinear texture filter;
filter with a trilinear texture filter; and
filter with an anisotropic texture filter.
20 . A system for unified shader engine filtering, comprising:
means for receiving texture requests from a plurality of resources in parallel for a plurality of specified pixels;
means for generating a set of output texel data for each specified pixel based on rendering calculations;
means for retrieving texel data from a level one cache system; and
means for calculating, based on the texel date, a formatted interpolation utilizing a mapping unit.
21 . A system according to claim 20 , further comprising:
means for processing shader pipe data destined to one or more defective shader pipes.
22 . A system according to claim 20 , further comprising:
means for reading and writing to and from a level two cache system from the level one texture cache system.
23 . A system according to claim 20 , further comprising:
means for receiving floating point texel data;
means for generating normalized fixed point texel data from the floating point texel data;
means for performing an interpolation on the normalized fixed point texel data;
means for generating re-normalized floating point texel data;
means for accumulating re-normalized texel data; and
means for formatting the accumulated re-normalized texel data into a standard floating point representation.
24 . A system according to claim 20 , further comprising:
means for filtering a bilinear texture filter;
means for filtering a trilinear texture filter; and
means for filtering an anisotropic texture filter.
25 . A computer readable medium carrying one or more sequences of one or more instructions for execution by one or more processor-based computing systems which when executed cause the one or more processor-based computing systems to perform a method for unified shader engine filtering, comprising:
receiving texture requests from a plurality of resources in parallel for a plurality of specified pixels, vertices, primitives, surfaces, or compute work items;
generating a data set of addresses based on a shader program instruction for the specified set of pixels, vertices, primitives, surfaces, or compute work items;
retrieving a stored texel data from a level one cache system; and
calculating a formatted interpolation based on the retrieved texel data and originating shader instruction.
26 . The computer readable medium according to 25 , wherein the method for unified shader engine filtering further comprises:
receiving floating point texel data;
generating normalized fixed point texel data from the floating point texel data;
performing an interpolation on the normalized fixed point texel data;
generating re-normalized floating point texel data;
accumulating re-normalized texel data; and
formatting the accumulated re-normalized texel data into a standard floating point representation.