diff options
author | Kenneth Graunke <[email protected]> | 2017-08-09 11:31:48 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2017-08-10 15:18:58 -0700 |
commit | 5563872dbfbf733ed56e1b367bc8944ca59b1c3e (patch) | |
tree | 7f672e9e91b44fc0ac4aaa83af2381968ba3e5f8 /src/intel/isl | |
parent | 26fbb9eacddb1b809739cb12477bde13501d6d5a (diff) |
isl: Validate row pitch of stencil surfaces.
Also, silence an obnoxious finishme that started occurring for all
GL applications which use stencil after the i965 ISL conversion.
v2: Check against 3DSTATE_STENCIL_BUFFER's pitch bits when using
separate stencil, and 3DSTATE_DEPTH_BUFFER's bits when using
combined depth-stencil.
Cc: "17.2" <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/intel/isl')
-rw-r--r-- | src/intel/isl/isl.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c index 6b4203d79d2..133986782b7 100644 --- a/src/intel/isl/isl.c +++ b/src/intel/isl/isl.c @@ -1367,8 +1367,13 @@ isl_calc_row_pitch(const struct isl_device *dev, !pitch_in_range(row_pitch, _3DSTATE_HIER_DEPTH_BUFFER_SurfacePitch_bits(dev->info))) return false; - if (surf_info->usage & ISL_SURF_USAGE_STENCIL_BIT) - isl_finishme("validate row pitch of stencil surfaces"); + const uint32_t stencil_pitch_bits = dev->use_separate_stencil ? + _3DSTATE_STENCIL_BUFFER_SurfacePitch_bits(dev->info) : + _3DSTATE_DEPTH_BUFFER_SurfacePitch_bits(dev->info); + + if ((surf_info->usage & ISL_SURF_USAGE_STENCIL_BIT) && + !pitch_in_range(row_pitch, stencil_pitch_bits)) + return false; done: *out_row_pitch = row_pitch; |