/**
* Max texture sizes
*/
-#define LP_MAX_TEXTURE_2D_LEVELS 13 /* 4K x 4K for now */
-#define LP_MAX_TEXTURE_3D_LEVELS 10 /* 512 x 512 x 512 for now */
+/**
+ * 2GB is the actual max currently (we always use 32bit offsets, and both
+ * llvm GEP as well as avx2 gather use signed offsets).
+ */
+#define LP_MAX_TEXTURE_SIZE (2 * 1024 * 1024 * 1024ULL)
+#define LP_MAX_TEXTURE_2D_LEVELS 14 /* 8K x 8K for now */
+#define LP_MAX_TEXTURE_3D_LEVELS 12 /* 2K x 2K x 2K for now */
+#define LP_MAX_TEXTURE_CUBE_LEVELS 14 /* 8K x 8K for now */
+#define LP_MAX_TEXTURE_ARRAY_LAYERS 512 /* 8K x 512 / 8K x 8K x 512 */
/** This must be the larger of LP_MAX_TEXTURE_2D/3D_LEVELS */
#define LP_MAX_HEIGHT (1 << (LP_MAX_TEXTURE_LEVELS - 1))
#define LP_MAX_WIDTH (1 << (LP_MAX_TEXTURE_LEVELS - 1))
+#define LP_MAX_SAMPLES 4
-#define LP_MAX_THREADS 8
+#define LP_MAX_THREADS 16
/**
/**
* Max number of instructions (for all fragment shaders combined per context)
- * that will be kept around.
+ * that will be kept around (counted in terms of llvm ir).
*/
-#define LP_MAX_SHADER_INSTRUCTIONS (128*1024)
+#define LP_MAX_SHADER_INSTRUCTIONS (2048 * LP_MAX_SHADER_VARIANTS)
/**
* Max number of setup variants that will be kept around.
*/
#define LP_MAX_SETUP_VARIANTS 64
+/*
+ * Max point size reported. Cap vertex shader point sizes to this.
+ */
+#define LP_MAX_POINT_WIDTH 255.0f
#endif /* LP_LIMITS_H */