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