• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    QCOM_texture_foveated2
4
5Name Strings
6
7    GL_QCOM_texture_foveated2
8
9Contact
10
11    Jeff Leger - jleger 'at' qti.qualcomm.com
12
13Contributors
14
15    Sam Holmes
16    Jonathan Wicks
17    Arpit Agarwal
18
19Status
20
21    Complete
22
23Version
24
25    Last Modified Date:  October 12, 2020
26    Author Revision: 1.0
27
28Number
29
30     OpenGL ES Extension #331
31
32Dependencies
33
34    This extension requires QCOM_texture_foveated.
35
36    This extension interacts with QCOM_texture_foveated_subsampled_layout.
37
38Overview
39
40    This extension adds a new texture parameter that specifies a pixel density
41    below which rendering can be discarded during foveated rendering.
42
43New Tokens
44
45    Accepted as a value for <pname> for the TexParameter{if} and
46    TexParameter{if}v commands and for the <pname> parameter of
47    GetTexParameter{if}v:
48
49    TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM         0x96A0
50
51    Add new rows to Table 8.19 (Texture parameters and their values):
52
53        Name                               | Type | Legal Values
54    ------------------------------------------------------------
55    TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM | float | Any float between 0.0 and 1.0
56
57    Add new rows to Table 21.10 Textures (state per texture object)
58
59    Get value | Type | Get Command | Initial Value | Description | Sec
60    ------------------------------------------------------------------
61    TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM | R[0.0,1.0] | GetTexParameter{if}v | 0.0 | Pixel density threshold for rendering cutoff | 8.19
62
63    This parameter defines the cutoff pixel density for a given focal
64    point at the location (px,py) on a texture layer in NDC as:
65
66    cutoff_pixel_density=TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM;
67    for(int i=0;i<focalPointsPerLayer;++i){
68        focal_point_density = 1./max((focalX[i]-px)^2*gainX[i]^2+
69                            (focalY[i]-py)^2*gainY[i]^2-foveaArea[i],1.);
70        if(focal_point_density >= cutoff_pixel_density)
71            shade pixel;
72    }
73
74    The resulting contents of the buffer regions corresponding to the
75    discarded pixels will be undefined.
76
77New Procedures and Functions
78
79    None.
80
81Errors
82
83    INVALID_VALUE is generated by TexParameter{if} or TexParamter{if}v
84    if <pname> is TEXTURE_FOVEATED_CUTOFF_DENSITY_QCOM and <param> is a
85    float less than 0.0 or greater than 1.0.
86
87Issues
88
89    (1)  What are the texture contents in discarded regions?
90
91    RESOLVED: After a draw operation where the foveation density cutoff
92    is applied, the contents of the discarded regions of the texture become
93    undefined. It is the application's responsibility to only sample from
94    the regions of the texture that are above the cutoff pixel density, as
95    specified by the provided foveation parameters.
96
97    (2)  Are any other buffers impacted other than color buffer?
98
99    RESOLVED: Yes. Contents of the depth and stencil buffers will be
100    undefined for discarded regions.
101
102    (3)  What is the impact on primitive/geometric data for discarded regions?
103
104    RESOLVED: For the discarded regions, primitive data is also discarded so
105    the behavior of all shaders in the vertex processing stage is undefined
106    for these regions (such as UAV writes and transform feedback).
107
108
109Revision History
110
111      Rev.    Date    Author    Changes
112      ----  --------  --------  -----------------------------------------
113      1.0   10/12/20  jleger  Initial version.
114
115