i965: Move device quirks to brw_device_info.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
parent
d76f6c7ae4
commit
ea890c031d
3 changed files with 27 additions and 8 deletions
|
|
@ -366,6 +366,9 @@ brwCreateContext(gl_api api,
|
|||
brw->has_llc = devinfo->has_llc;
|
||||
brw->has_hiz = devinfo->has_hiz_and_separate_stencil;
|
||||
brw->has_separate_stencil = devinfo->has_hiz_and_separate_stencil;
|
||||
brw->has_negative_rhw_bug = devinfo->has_negative_rhw_bug;
|
||||
brw->needs_unlit_centroid_workaround =
|
||||
devinfo->needs_unlit_centroid_workaround;
|
||||
|
||||
brw->must_use_separate_stencil = screen->hw_must_use_separate_stencil;
|
||||
brw->has_swizzling = screen->hw_has_swizzling;
|
||||
|
|
@ -455,13 +458,6 @@ brwCreateContext(gl_api api,
|
|||
if (brw->gen == 6)
|
||||
brw->urb.gen6_gs_previously_active = false;
|
||||
|
||||
if (brw->gen == 4 && !brw->is_g4x)
|
||||
brw->has_negative_rhw_bug = true;
|
||||
|
||||
if (brw->gen <= 7) {
|
||||
brw->needs_unlit_centroid_workaround = true;
|
||||
}
|
||||
|
||||
brw->prim_restart.in_progress = false;
|
||||
brw->prim_restart.enable_cut_index = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@
|
|||
|
||||
static const struct brw_device_info brw_device_info_i965 = {
|
||||
.gen = 4,
|
||||
.has_negative_rhw_bug = true,
|
||||
.needs_unlit_centroid_workaround = true,
|
||||
.max_vs_threads = 16,
|
||||
.max_gs_threads = 2,
|
||||
.max_wm_threads = 8 * 4,
|
||||
|
|
@ -37,6 +39,7 @@ static const struct brw_device_info brw_device_info_i965 = {
|
|||
|
||||
static const struct brw_device_info brw_device_info_g4x = {
|
||||
.gen = 4,
|
||||
.needs_unlit_centroid_workaround = true,
|
||||
.is_g4x = true,
|
||||
.max_vs_threads = 32,
|
||||
.max_gs_threads = 2,
|
||||
|
|
@ -48,6 +51,7 @@ static const struct brw_device_info brw_device_info_g4x = {
|
|||
|
||||
static const struct brw_device_info brw_device_info_ilk = {
|
||||
.gen = 5,
|
||||
.needs_unlit_centroid_workaround = true,
|
||||
.max_vs_threads = 72,
|
||||
.max_gs_threads = 32,
|
||||
.max_wm_threads = 12 * 6,
|
||||
|
|
@ -61,6 +65,7 @@ static const struct brw_device_info brw_device_info_snb_gt1 = {
|
|||
.gt = 2,
|
||||
.has_hiz_and_separate_stencil = true,
|
||||
.has_llc = true,
|
||||
.needs_unlit_centroid_workaround = true,
|
||||
.max_vs_threads = 24,
|
||||
.max_gs_threads = 21, /* conservative; 24 if rendering disabled. */
|
||||
.max_wm_threads = 40,
|
||||
|
|
@ -77,6 +82,7 @@ static const struct brw_device_info brw_device_info_snb_gt2 = {
|
|||
.gt = 2,
|
||||
.has_hiz_and_separate_stencil = true,
|
||||
.has_llc = true,
|
||||
.needs_unlit_centroid_workaround = true,
|
||||
.max_vs_threads = 60,
|
||||
.max_gs_threads = 60,
|
||||
.max_wm_threads = 80,
|
||||
|
|
@ -92,7 +98,8 @@ static const struct brw_device_info brw_device_info_snb_gt2 = {
|
|||
.gen = 7, \
|
||||
.has_hiz_and_separate_stencil = true, \
|
||||
.must_use_separate_stencil = true, \
|
||||
.has_llc = true
|
||||
.has_llc = true, \
|
||||
.needs_unlit_centroid_workaround = true
|
||||
|
||||
static const struct brw_device_info brw_device_info_ivb_gt1 = {
|
||||
GEN7_FEATURES, .is_ivybridge = true, .gt = 1,
|
||||
|
|
|
|||
|
|
@ -40,6 +40,22 @@ struct brw_device_info
|
|||
|
||||
bool has_llc;
|
||||
|
||||
/**
|
||||
* Quirks:
|
||||
* @{
|
||||
*/
|
||||
bool has_negative_rhw_bug;
|
||||
|
||||
/**
|
||||
* Some versions of Gen hardware don't do centroid interpolation correctly
|
||||
* on unlit pixels, causing incorrect values for derivatives near triangle
|
||||
* edges. Enabling this flag causes the fragment shader to use
|
||||
* non-centroid interpolation for unlit pixels, at the expense of two extra
|
||||
* fragment shader instructions.
|
||||
*/
|
||||
bool needs_unlit_centroid_workaround;
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* GPU Limits:
|
||||
* @{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue