}
int ret = 0;
- if (!batch->screen->no_hw &&
+ if (!batch->screen->devinfo.no_hw &&
intel_ioctl(batch->screen->fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf))
ret = -errno;
struct crocus_screen *screen = (void *) ctx->screen;
const struct intel_device_info *devinfo = &screen->devinfo;
- if (unlikely(screen->no_hw)) {
+ if (unlikely(screen->devinfo.no_hw)) {
result->u64 = 0;
return true;
}
if (!intel_get_device_info_from_fd(fd, &screen->devinfo))
return NULL;
screen->pci_id = screen->devinfo.chipset_id;
- screen->no_hw = screen->devinfo.no_hw;
if (screen->devinfo.ver > 8)
return NULL;
screen->aperture_bytes = get_aperture_size(fd);
- screen->no_hw = env_var_as_boolean("INTEL_NO_HW", false);
-
driParseConfigFiles(config->options, config->options_info, 0, "crocus",
NULL, NULL, NULL, 0, NULL, 0);
/** PCI ID for our GPU device */
int pci_id;
- bool no_hw;
-
struct crocus_vtable vtbl;
/** Global program_string_id counter (see get_program_string_id()) */
}
int ret = 0;
- if (!batch->screen->no_hw &&
+ if (!batch->screen->devinfo.no_hw &&
intel_ioctl(batch->screen->fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, &execbuf))
ret = -errno;
struct iris_screen *screen = (void *) ctx->screen;
const struct intel_device_info *devinfo = &screen->devinfo;
- if (unlikely(screen->no_hw)) {
+ if (unlikely(screen->devinfo.no_hw)) {
result->u64 = 0;
return true;
}
if (!intel_get_device_info_from_fd(fd, &screen->devinfo))
return NULL;
screen->pci_id = screen->devinfo.chipset_id;
- screen->no_hw = screen->devinfo.no_hw;
p_atomic_set(&screen->refcount, 1);
screen->fd = iris_bufmgr_get_fd(screen->bufmgr);
screen->winsys_fd = fd;
- screen->no_hw = env_var_as_boolean("INTEL_NO_HW", false);
-
screen->workaround_bo =
iris_bo_alloc(screen->bufmgr, "workaround", 4096, 1,
IRIS_MEMZONE_OTHER, 0);
/** PCI ID for our GPU device */
int pci_id;
- bool no_hw;
-
struct iris_vtable vtbl;
/** Global program_string_id counter (see get_program_string_id()) */
#include "compiler/shader_enums.h"
#include "intel/common/intel_gem.h"
#include "util/bitscan.h"
+#include "util/debug.h"
#include "util/log.h"
#include "util/macros.h"
return false;
if (!intel_get_device_info_from_pci_id(devid, devinfo))
return false;
- devinfo->no_hw = false;
+ devinfo->no_hw = env_var_as_boolean("INTEL_NO_HW", false);
}
if (devinfo->ver == 10) {
.rsvd1 = device->context_id,
};
- int ret = queue->device->no_hw ? 0 :
+ int ret = queue->device->info.no_hw ? 0 :
anv_gem_execbuffer(queue->device, &query_pass_execbuf);
if (ret)
result = anv_queue_set_lost(queue, "execbuf2 failed: %m");
}
- int ret = queue->device->no_hw ? 0 :
+ int ret = queue->device->info.no_hw ? 0 :
anv_gem_execbuffer(queue->device, &execbuf.execbuf);
if (ret)
result = anv_queue_set_lost(queue, "execbuf2 failed: %m");
device->info = devinfo;
- device->no_hw =
- device->info.no_hw || env_var_as_boolean("INTEL_NO_HW", false);
-
device->pci_info.domain = drm_device->businfo.pci->domain;
device->pci_info.bus = drm_device->businfo.pci->bus;
device->pci_info.device = drm_device->businfo.pci->dev;
}
device->physical = physical_device;
- device->no_hw = physical_device->no_hw;
device->_lost = false;
/* XXX(chadv): Can we dup() physicalDevice->fd here? */
struct list_head link;
struct anv_instance * instance;
- bool no_hw;
char path[20];
struct {
uint16_t domain;
struct vk_device vk;
struct anv_physical_device * physical;
- bool no_hw;
struct intel_device_info info;
struct isl_device isl_dev;
int context_id;
* fail because the dma-fence it depends on hasn't materialized yet.
*/
if (!queue->lost && submit->wait_timeline_count > 0) {
- int ret = queue->device->no_hw ? 0 :
+ int ret = queue->device->info.no_hw ? 0 :
anv_gem_syncobj_timeline_wait(
queue->device, submit->wait_timeline_syncobjs,
submit->wait_timeline_values, submit->wait_timeline_count,
anv_queue_submit_simple_batch(struct anv_queue *queue,
struct anv_batch *batch)
{
- if (queue->device->no_hw)
+ if (queue->device->info.no_hw)
return VK_SUCCESS;
struct anv_device *device = queue->device;
ANV_FROM_HANDLE(anv_fence, fence, _fence);
struct anv_device *device = queue->device;
- if (device->no_hw)
+ if (device->info.no_hw)
return VK_SUCCESS;
/* Query for device status prior to submitting. Technically, we don't need
{
ANV_FROM_HANDLE(anv_device, device, _device);
- if (device->no_hw)
+ if (device->info.no_hw)
return VK_SUCCESS;
if (anv_device_is_lost(device))
brw_bo_unmap(batch->batch.bo);
brw_bo_unmap(batch->state.bo);
- if (!brw->screen->no_hw) {
+ if (!brw->screen->devinfo.no_hw) {
/* The requirement for using I915_EXEC_NO_RELOC are:
*
* The addresses written in the objects must match the corresponding
{
__DRIscreen *dri_screen = screen->driScrnPriv;
- screen->no_hw = env_var_as_boolean("INTEL_NO_HW", false);
-
bool bo_reuse = false;
int bo_reuse_mode = driQueryOptioni(&screen->optionCache, "bo_reuse");
switch (bo_reuse_mode) {
brw_detect_pipelined_register(struct brw_screen *screen,
int reg, uint32_t expected_value, bool reset)
{
- if (screen->no_hw)
+ if (screen->devinfo.no_hw)
return false;
struct brw_bo *results, *bo;
const struct intel_device_info *devinfo = &screen->devinfo;
screen->deviceID = devinfo->chipset_id;
- screen->no_hw = devinfo->no_hw;
if (devinfo->ver >= 12) {
fprintf(stderr, "gfx12 and newer are not supported on i965\n");
/** DRM fd associated with this screen. Not owned by this object. Do not close. */
int fd;
- bool no_hw;
bool hw_has_swizzling;
bool has_exec_fence; /**< I915_PARAM_HAS_EXEC_FENCE */