Trying to understand a bit better how the OpenGL texture support maps to the hardware, for Gen9 processor graphics (specifically HD P530/530).
For instance, where are the "texture units" located (e.g. glActiveTexture(GL_TEXTURE0) etc) - are these just SW/driver constructs or is there some physical HW component association, and what determines the current max # of texture units?
Where does the texture array data get loaded (e.g. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, data)), does it go in L3 Data Cache, and then copies go into L1 and L2 caches when used/accessed, or...?
Is texture data automatically converted into optimized storage formats (z-order, morton order, etc) for improved cache performance?
Also, if there are any articles/whitepapers/guides/videos discussing these kinds of details please recommend.
I've already looked in the obvious places:
- Intel Graphics API Developer's Guide, for 6th Gen Intel Core
- Compute Architecture of Intel Processor Graphics Gen9 v1.0 (Junkins)