18b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz/**************************************************************************
28b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz *
38b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * Copyright © 2010 Jakob Bornecrantz
48b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz *
58b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * Permission is hereby granted, free of charge, to any person obtaining a
68b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * copy of this software and associated documentation files (the "Software"),
78b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * to deal in the Software without restriction, including without limitation
88b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * the rights to use, copy, modify, merge, publish, distribute, sublicense,
98b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * and/or sell copies of the Software, and to permit persons to whom the
108b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * Software is furnished to do so, subject to the following conditions:
118b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz *
128b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * The above copyright notice and this permission notice (including the next
138b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * paragraph) shall be included in all copies or substantial portions of the
148b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * Software.
158b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz *
168b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
178b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
188b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
198b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
208b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
218b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
228b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz * DEALINGS IN THE SOFTWARE.
238b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz *
248b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz **************************************************************************/
258b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz
268b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz
278b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz#include "i915_reg.h"
288b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz#include "i915_context.h"
298b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz#include "i915_state.h"
308b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz
318b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz
328b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz
338b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz/***********************************************************************
348b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz */
358b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantzstatic void update_hw_constants(struct i915_context *i915)
368b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz{
378b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz   i915->hardware_dirty |= I915_HW_CONSTANTS;
388b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz}
398b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz
408b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantzstruct i915_tracked_state i915_hw_constants = {
418b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz   "hw_constants",
428b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz   update_hw_constants,
432e60aa511dd232f88697d1cc2091442caaef79b2Jakob Bornecrantz   I915_NEW_FS_CONSTANTS | I915_NEW_FS
448b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz};
458b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz
468b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz
478b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz
488b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz/***********************************************************************
498b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz */
508b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantzstatic void update_fs(struct i915_context *i915)
518b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz{
528b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz   i915->hardware_dirty |= I915_HW_PROGRAM;
538b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz}
548b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz
558b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantzstruct i915_tracked_state i915_hw_fs = {
568b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz   "fs",
578b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz   update_fs,
588b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz   I915_NEW_FS
598b122bdf6c0ba3bd77ff6f5b85b7fa84865535dbJakob Bornecrantz};
60