GL_ARB_robust_buffer_access_behavior not started
GL_ARB_shader_image_size not started
GL_ARB_shader_storage_buffer_object not started
- GL_ARB_stencil_texturing API exists, no drivers
+ GL_ARB_stencil_texturing DONE (i965/gen8+)
GL_ARB_texture_buffer_range DONE (nv50, nvc0, i965, r600, radeonsi)
GL_ARB_texture_query_levels DONE (i965)
GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample)
#define GEN8_SURFACE_HALIGN_8 (2 << 14)
#define GEN8_SURFACE_HALIGN_16 (3 << 14)
#define GEN8_SURFACE_TILING_NONE (0 << 12)
+#define GEN8_SURFACE_TILING_W (1 << 12)
#define GEN8_SURFACE_TILING_X (2 << 12)
#define GEN8_SURFACE_TILING_Y (3 << 12)
#define BRW_SURFACE_RC_READ_WRITE (1 << 8)
[MESA_FORMAT_Z24_UNORM_X8_UINT] = 0,
[MESA_FORMAT_X8Z24_UNORM] = 0,
[MESA_FORMAT_Z_UNORM32] = 0,
- [MESA_FORMAT_S_UINT8] = 0,
+ [MESA_FORMAT_S_UINT8] = BRW_SURFACEFORMAT_R8_UINT,
[MESA_FORMAT_BGR_SRGB8] = 0,
[MESA_FORMAT_A8B8G8R8_SRGB] = 0,
return;
}
+ if (tObj->StencilSampling && firstImage->_BaseFormat == GL_DEPTH_STENCIL)
+ mt = mt->stencil_mt;
+
+ unsigned tiling_mode, pitch;
+ if (mt->format == MESA_FORMAT_S_UINT8) {
+ tiling_mode = GEN8_SURFACE_TILING_W;
+ pitch = 2 * mt->region->pitch;
+ } else {
+ tiling_mode = surface_tiling_mode(mt->region->tiling);
+ pitch = mt->region->pitch;
+ }
+
uint32_t tex_format = translate_tex_format(brw,
mt->format,
sampler->sRGBDecode);
tex_format << BRW_SURFACE_FORMAT_SHIFT |
vertical_alignment(mt) |
horizontal_alignment(mt) |
- surface_tiling_mode(mt->region->tiling);
+ tiling_mode;
if (tObj->Target == GL_TEXTURE_CUBE_MAP ||
tObj->Target == GL_TEXTURE_CUBE_MAP_ARRAY) {
surf[2] = SET_FIELD(mt->logical_width0 - 1, GEN7_SURFACE_WIDTH) |
SET_FIELD(mt->logical_height0 - 1, GEN7_SURFACE_HEIGHT);
- surf[3] = SET_FIELD(mt->logical_depth0 - 1, BRW_SURFACE_DEPTH) |
- (mt->region->pitch - 1);
+ surf[3] = SET_FIELD(mt->logical_depth0 - 1, BRW_SURFACE_DEPTH) | (pitch - 1);
surf[4] = gen7_surface_msaa_bits(mt->num_samples, mt->msaa_layout);
ctx->Extensions.ARB_compute_shader = true;
}
+ if (brw->gen >= 8) {
+ ctx->Extensions.ARB_stencil_texturing = true;
+ }
+
if (brw->gen == 5 || can_write_oacontrol(brw))
ctx->Extensions.AMD_performance_monitor = true;