ETNA_GPU_FEATURES_4 = 0x7,
ETNA_GPU_FEATURES_5 = 0x8,
ETNA_GPU_FEATURES_6 = 0x9,
+ ETNA_GPU_FEATURES_7 = 0xa,
ETNA_GPU_STREAM_COUNT = 0x10,
ETNA_GPU_REGISTER_MAX = 0x11,
case ETNA_GPU_FEATURES_6:
*value = get_param(dev, core, ETNAVIV_PARAM_GPU_FEATURES_6);
return 0;
+ case ETNA_GPU_FEATURES_7:
+ *value = get_param(dev, core, ETNAVIV_PARAM_GPU_FEATURES_7);
+ return 0;
case ETNA_GPU_STREAM_COUNT:
*value = get_param(dev, core, ETNA_GPU_STREAM_COUNT);
return 0;
unsigned has_new_transcendentals : 1;
/* has the new dp2/dpX_norm instructions, among others */
unsigned has_halti2_instructions : 1;
+ /* has V4_COMPRESSION */
+ unsigned v4_compression : 1;
/* supports single-buffer rendering with multiple pixel pipes */
unsigned single_buffer : 1;
/* has unified uniforms memory */
VIV_FEATURE(screen, chipMinorFeatures3, HAS_FAST_TRANSCENDENTALS);
screen->specs.has_halti2_instructions =
VIV_FEATURE(screen, chipMinorFeatures4, HALTI2);
+ screen->specs.v4_compression =
+ VIV_FEATURE(screen, chipMinorFeatures6, V4_COMPRESSION);
if (screen->specs.halti >= 5) {
/* GC7000 - this core must load shaders from memory. */
}
screen->features[6] = val;
+ if (etna_gpu_get_param(screen->gpu, ETNA_GPU_FEATURES_7, &val)) {
+ DBG("could not get ETNA_GPU_FEATURES_7");
+ goto fail;
+ }
+ screen->features[7] = val;
+
if (!etna_get_specs(screen))
goto fail;
viv_chipMinorFeatures3 = 4,
viv_chipMinorFeatures4 = 5,
viv_chipMinorFeatures5 = 6,
+ viv_chipMinorFeatures6 = 7,
VIV_FEATURES_WORD_COUNT /* Must be last */
};