  if(primitiveID==0u || primitiveID>65535u)
   break;
  primitiveID--; //Compensate for zero representing "unwritten."
- vec2 pQuad = pQuads[i]= getPQuad(primitiveID);
- vec4 _uvzw	= textureLod(primitiveUVZWTexture,pQuad,0);
+ vec3 pQuad = pQuads[i]= getPQuad(primitiveID);
+ vec4 _uvzw	= textureProjLod(primitiveUVZWTexture,pQuad,0);
  _uvzw.xyz /= _uvzw.w;
  vUVZI[i]   = vec4(_uvzw.xyz,getTextureID(primitiveID));
  _w[i]		= _uvzw.w;

 	vec2	subTexUVsub	= codeXY*CODE_PAGE_TEXEL_SIZE_UV;
 	vec2	codePgXY	= vec2(codeIdx % CODE_PAGE_SIDE_WIDTH_CODES,(codeIdx / CODE_PAGE_SIDE_WIDTH_CODES)%CODE_PAGE_SIDE_WIDTH_CODES)*4+codeXY+sub;
 	cTexel				= textureLod(rgbaTiles,vec3(codePgXY*CODE_PAGE_TEXEL_SIZE_UV,codeBkPgNum),0);
 	float sunIllumination			= -dot(sunVector,norm);
	if(dot(norm.xyz,norm.xyz)>.01)cTexel.rgb
 	 =((clamp(sunIllumination,0,1)*sunColor)+ambientLight) * cTexel.rgb;
 	return cTexel;
    }else{subTexV4Addr = uvec4(stv4a);}
   uvec4	subTexXY_A	= iuv4A%SUBTEXTURE_SIDE_WIDTH_TEXELS;
   uvec4	subTexXY_B  = iuv4B%SUBTEXTURE_SIDE_WIDTH_TEXELS;

 return uint(logn(fsq.x,16));
}

vec3 getPQuad(uint primitiveID){
 vec2	corner		= vec2(primitiveID%PRIMS_PER_ROW,primitiveID/PRIMS_PER_ROW);
 return				vec3(corner + halfScreenLocOffset,PQUAD_DENOM);
}

float getTextureID(uint primitiveID){
 uint vertexID = primitiveID * 3u;
 return texelFetch(
  vertexTextureIDTexture,
  ivec2(vertexID%VTX_TEXTURE_USABLE_WIDTH,
  vertexID/VTX_TEXTURE_USABLE_WIDTH),0).x
   *(65536u*PAGE_SIZE_VEC4);
}

////////// STRUCT LAYOUT DOCUMENTATION ///////////////
